aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/wpt/metadata/MANIFEST.json7563
-rw-r--r--tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini2
-rw-r--r--tests/wpt/metadata/encoding/single-byte-decoder.html.ini8
-rw-r--r--tests/wpt/metadata/html/rendering/non-replaced-elements/tables/hidden-attr.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html.ini4
-rw-r--r--tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini8
-rw-r--r--tests/wpt/metadata/touch-events/historical.html.ini6
-rw-r--r--tests/wpt/metadata/workers/modules/dedicated-worker-import-csp.html.ini4
-rw-r--r--tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini5
-rw-r--r--tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html4
-rw-r--r--tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js4
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html95
-rw-r--r--tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-006.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-007.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-008.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-009.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-010.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-011.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-012.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html67
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html60
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html64
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html60
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html69
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html72
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html72
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html72
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html128
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html178
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-function-failure.https.html63
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-sab-failure.https.html68
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-data.https.html71
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-function-failure.https.html44
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-immutable.https.html71
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-sab-failure.https.html49
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fragment-data.https.html66
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/green-square-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-ref.html)1
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js22
-rw-r--r--tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html9
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number.html11
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html69
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/support/properties.js2
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/outline-017.html43
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/outline-018.html50
-rw-r--r--tests/wpt/web-platform-tests/css/support/grid.css277
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html62
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html66
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html66
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list2
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list12
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html46
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html49
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html49
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html47
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html50
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html50
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html44
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html47
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html45
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html48
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html50
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html54
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html50
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html54
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html54
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html55
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html46
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html50
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html47
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html51
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter1
-rw-r--r--tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md2
-rw-r--r--tests/wpt/web-platform-tests/dom/interfaces.html5
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html55
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html55
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html55
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html140
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html194
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html149
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html185
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html140
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html140
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html121
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html76
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html112
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html67
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html49
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html49
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html146
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html193
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html149
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html189
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html138
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html110
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html66
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html102
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html58
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html45
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html2
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html46
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html46
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html46
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html46
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html46
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html46
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html48
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html190
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html151
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html183
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html142
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html124
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html79
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html115
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html71
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html56
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html56
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html37
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html150
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html150
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html191
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html181
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html150
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html159
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html150
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html159
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html150
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html150
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html152
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html150
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html123
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html112
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html77
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html55
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html55
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html55
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html38
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html39
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html36
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html148
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html149
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html148
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html156
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html156
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html195
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html149
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html181
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html140
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html148
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html147
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html123
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html75
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html109
-rw-r--r--tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html67
-rw-r--r--tests/wpt/web-platform-tests/encoding/resources/decode-common.js40
-rw-r--r--tests/wpt/web-platform-tests/encoding/resources/encode-form-common.js140
-rw-r--r--tests/wpt/web-platform-tests/encoding/resources/encode-href-common.js57
-rw-r--r--tests/wpt/web-platform-tests/encoding/resources/ranges.js28
-rw-r--r--tests/wpt/web-platform-tests/encoding/single-byte-decoder.html62
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html129
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js99
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/hidden-attr.html41
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/resources/test_page.html3
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html82
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html28
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html29
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html28
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html19
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html83
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html1
-rw-r--r--tests/wpt/web-platform-tests/lifecycle/freeze.html48
-rw-r--r--tests/wpt/web-platform-tests/lifecycle/resources/foo.txt1
-rw-r--r--tests/wpt/web-platform-tests/lifecycle/resources/window.html66
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html11
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-fromelement/historical.html17
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html5
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.html13
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.js45
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js50
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.html14
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.html13
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.js45
-rw-r--r--tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.worker.js7
-rw-r--r--tests/wpt/web-platform-tests/priority-hints/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/priority-hints/img-attr-named-constructor.tentative.html24
-rw-r--r--tests/wpt/web-platform-tests/priority-hints/link-attr.tentative.html24
-rw-r--r--tests/wpt/web-platform-tests/priority-hints/resources/stylesheet.css3
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html31
-rw-r--r--tests/wpt/web-platform-tests/resources/idlharness.js2
-rw-r--r--tests/wpt/web-platform-tests/resources/testdriver.js25
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html2
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js2
-rw-r--r--tests/wpt/web-platform-tests/tools/lint/lint.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py1
-rw-r--r--tests/wpt/web-platform-tests/tools/serve/serve.py5
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py6
-rw-r--r--tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html39
-rw-r--r--tests/wpt/web-platform-tests/touch-events/historical.html11
-rw-r--r--tests/wpt/web-platform-tests/url/README.md2
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html66
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html66
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html66
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js1
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html34
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js2
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html8
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-csp.html114
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html57
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js4
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/export-on-load-script.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/new-worker-window.html15
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js3
278 files changed, 13340 insertions, 10507 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index caad2563cc9..09626072ef7 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -102103,6 +102103,18 @@
{}
]
],
+ "css/css-animations/set-animation-play-state-to-paused-002.html": [
+ [
+ "/css/css-animations/set-animation-play-state-to-paused-002.html",
+ [
+ [
+ "/css/css-animations/set-animation-play-state-to-paused-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-backgrounds/background-334.html": [
[
"/css/css-backgrounds/background-334.html",
@@ -109051,6 +109063,90 @@
{}
]
],
+ "css/css-contain/contain-size-006.html": [
+ [
+ "/css/css-contain/contain-size-006.html",
+ [
+ [
+ "/css/css-contain/reference/contain-size-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-size-007.html": [
+ [
+ "/css/css-contain/contain-size-007.html",
+ [
+ [
+ "/css/css-contain/reference/contain-size-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-size-008.html": [
+ [
+ "/css/css-contain/contain-size-008.html",
+ [
+ [
+ "/css/css-contain/reference/contain-size-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-size-009.html": [
+ [
+ "/css/css-contain/contain-size-009.html",
+ [
+ [
+ "/css/css-contain/reference/contain-size-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-size-010.html": [
+ [
+ "/css/css-contain/contain-size-010.html",
+ [
+ [
+ "/css/css-contain/reference/contain-size-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-size-011.html": [
+ [
+ "/css/css-contain/contain-size-011.html",
+ [
+ [
+ "/css/css-contain/reference/contain-paint-014-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-size-012.html": [
+ [
+ "/css/css-contain/contain-size-012.html",
+ [
+ [
+ "/css/css-contain/reference/contain-paint-014-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-contain/contain-size-breaks-001.html": [
[
"/css/css-contain/contain-size-breaks-001.html",
@@ -120795,6 +120891,366 @@
{}
]
],
+ "css/css-layout-api/constraints-data-function-failure.https.html": [
+ [
+ "/css/css-layout-api/constraints-data-function-failure.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-data-sab-failure.https.html": [
+ [
+ "/css/css-layout-api/constraints-data-sab-failure.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-data.https.html": [
+ [
+ "/css/css-layout-api/constraints-data.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-block-none.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-fixed.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-percentage.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [
+ [
+ "/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [
[
"/css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html",
@@ -121023,12 +121479,60 @@
{}
]
],
+ "css/css-layout-api/fragment-data-function-failure.https.html": [
+ [
+ "/css/css-layout-api/fragment-data-function-failure.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/fragment-data-immutable.https.html": [
+ [
+ "/css/css-layout-api/fragment-data-immutable.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/fragment-data-sab-failure.https.html": [
+ [
+ "/css/css-layout-api/fragment-data-sab-failure.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-layout-api/fragment-data.https.html": [
+ [
+ "/css/css-layout-api/fragment-data.https.html",
+ [
+ [
+ "/css/css-layout-api/green-square-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-layout-api/layout-child-absolute.https.html": [
[
"/css/css-layout-api/layout-child-absolute.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121040,7 +121544,7 @@
"/css/css-layout-api/layout-child-before-after.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121052,7 +121556,7 @@
"/css/css-layout-api/layout-child-fixed.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121064,7 +121568,7 @@
"/css/css-layout-api/layout-child-float.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121076,7 +121580,7 @@
"/css/css-layout-api/layout-child-inflow.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121088,7 +121592,7 @@
"/css/css-layout-api/layout-child-inlines.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121100,7 +121604,7 @@
"/css/css-layout-api/layout-child-text.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121112,7 +121616,7 @@
"/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121124,7 +121628,7 @@
"/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121136,7 +121640,7 @@
"/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121148,7 +121652,7 @@
"/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121160,7 +121664,7 @@
"/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121172,7 +121676,7 @@
"/css/css-layout-api/perform-child-layout-fixed-block-size.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121184,7 +121688,7 @@
"/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -121196,7 +121700,7 @@
"/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html",
[
[
- "/css/css-layout-api/layout-child-ref.html",
+ "/css/css-layout-api/green-square-ref.html",
"=="
]
],
@@ -126435,6 +126939,18 @@
{}
]
],
+ "css/css-pseudo/placeholder-input-number.html": [
+ [
+ "/css/css-pseudo/placeholder-input-number.html",
+ [
+ [
+ "/css/css-pseudo/placeholder-input-number-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-regions/contentEditable/contentEditable-001.html": [
[
"/css/css-regions/contentEditable/contentEditable-001.html",
@@ -129895,6 +130411,18 @@
{}
]
],
+ "css/css-shapes/shape-outside/shape-image/shape-image-027.html": [
+ [
+ "/css/css-shapes/shape-outside/shape-image/shape-image-027.html",
+ [
+ [
+ "/css/css-shapes/shape-outside/shape-image/reference/shape-image-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-013.html": [
[
"/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-013.html",
@@ -165139,6 +165667,30 @@
{}
]
],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html": [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html",
+ [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html": [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html",
+ [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/dependent-builtin.html": [
[
"/css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/dependent-builtin.html",
@@ -172291,30 +172843,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041.html": [
[
"/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041.html",
@@ -172363,30 +172891,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047.html": [
[
"/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047.html",
@@ -172831,30 +173335,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020.html": [
[
"/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020.html",
@@ -173215,78 +173695,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html": [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html",
- [
- [
- "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html": [
[
"/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html",
@@ -238388,6 +238796,11 @@
{}
]
],
+ "css/css-animations/set-animation-play-state-to-paused-002-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-backgrounds/OWNERS": [
[
{}
@@ -250903,7 +251316,7 @@
{}
]
],
- "css/css-layout-api/layout-child-ref.html": [
+ "css/css-layout-api/green-square-ref.html": [
[
{}
]
@@ -250923,6 +251336,16 @@
{}
]
],
+ "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [
+ [
+ {}
+ ]
+ ],
+ "css/css-layout-api/support/constraints-fixed-block-size.js": [
+ [
+ {}
+ ]
+ ],
"css/css-layout-api/support/constraints-fixed-inline-size.js": [
[
{}
@@ -252533,6 +252956,11 @@
{}
]
],
+ "css/css-pseudo/placeholder-input-number-notref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-regions/OWNERS": [
[
{}
@@ -265973,6 +266401,11 @@
{}
]
],
+ "css/support/grid.css": [
+ [
+ {}
+ ]
+ ],
"css/support/import-green.css": [
[
{}
@@ -267003,6 +267436,11 @@
{}
]
],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list": [
[
{}
@@ -269113,11 +269551,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html": [
- [
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041-ref.html": [
[
{}
@@ -269128,11 +269561,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html": [
- [
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047-ref.html": [
[
{}
@@ -269308,16 +269736,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html": [
- [
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html": [
- [
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020-ref.html": [
[
{}
@@ -269468,26 +269886,6 @@
{}
]
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html": [
- [
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html": [
- [
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html": [
- [
- {}
- ]
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html": [
- [
- {}
- ]
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032-ref.html": [
[
{}
@@ -272083,11 +272481,6 @@
{}
]
],
- "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers": [
- [
- {}
- ]
- ],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.headers": [
[
{}
@@ -272428,16 +272821,36 @@
{}
]
],
+ "encoding/resources/decode-common.js": [
+ [
+ {}
+ ]
+ ],
"encoding/resources/decoding-helpers.js": [
[
{}
]
],
+ "encoding/resources/encode-form-common.js": [
+ [
+ {}
+ ]
+ ],
+ "encoding/resources/encode-href-common.js": [
+ [
+ {}
+ ]
+ ],
"encoding/resources/encodings.js": [
[
{}
]
],
+ "encoding/resources/ranges.js": [
+ [
+ {}
+ ]
+ ],
"encoding/resources/single-byte-raw.py": [
[
{}
@@ -283693,11 +284106,6 @@
{}
]
],
- "html/semantics/embedded-content/resources/test_page.html": [
- [
- {}
- ]
- ],
"html/semantics/embedded-content/svg/.gitkeep": [
[
{}
@@ -284198,6 +284606,11 @@
{}
]
],
+ "html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html": [
+ [
+ {}
+ ]
+ ],
"html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html": [
[
{}
@@ -287638,6 +288051,16 @@
{}
]
],
+ "lifecycle/resources/foo.txt": [
+ [
+ {}
+ ]
+ ],
+ "lifecycle/resources/window.html": [
+ [
+ {}
+ ]
+ ],
"longtask-timing/OWNERS": [
[
{}
@@ -289348,6 +289771,11 @@
{}
]
],
+ "payment-handler/can-make-payment-event-constructor.https.serviceworker.js": [
+ [
+ {}
+ ]
+ ],
"payment-handler/manifest.json": [
[
{}
@@ -289358,6 +289786,11 @@
{}
]
],
+ "payment-handler/payment-request-event-constructor.https.serviceworker.js": [
+ [
+ {}
+ ]
+ ],
"payment-handler/register-and-activate-service-worker.js": [
[
{}
@@ -289758,6 +290191,16 @@
{}
]
],
+ "priority-hints/OWNERS": [
+ [
+ {}
+ ]
+ ],
+ "priority-hints/resources/stylesheet.css": [
+ [
+ {}
+ ]
+ ],
"proximity/OWNERS": [
[
{}
@@ -300388,6 +300831,11 @@
{}
]
],
+ "workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/dynamic-import-worker.js": [
[
{}
@@ -300413,6 +300861,11 @@
{}
]
],
+ "workers/modules/resources/export-on-load-script.js.headers": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/export-on-static-import-script.js": [
[
{}
@@ -300438,6 +300891,11 @@
{}
]
],
+ "workers/modules/resources/new-worker-window.html": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/post-message-on-load-worker.js": [
[
{}
@@ -300453,6 +300911,11 @@
{}
]
],
+ "workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/static-import-worker.js": [
[
{}
@@ -316228,6 +316691,30 @@
{}
]
],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html": [
+ [
+ "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html",
+ {}
+ ]
+ ],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html": [
+ [
+ "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html",
+ {}
+ ]
+ ],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html": [
+ [
+ "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html",
+ {}
+ ]
+ ],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html": [
+ [
+ "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html",
+ {}
+ ]
+ ],
"css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html": [
[
"/css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html",
@@ -316348,6 +316835,30 @@
{}
]
],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html": [
+ [
+ "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html",
+ {}
+ ]
+ ],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html": [
+ [
+ "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html",
+ {}
+ ]
+ ],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html": [
+ [
+ "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html",
+ {}
+ ]
+ ],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html": [
+ [
+ "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html",
+ {}
+ ]
+ ],
"css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html": [
[
"/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html",
@@ -316804,6 +317315,18 @@
{}
]
],
+ "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html": [
+ [
+ "/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html",
+ {}
+ ]
+ ],
+ "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html": [
+ [
+ "/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html",
+ {}
+ ]
+ ],
"css/css-grid/grid-definition/grid-change-fit-content-argument-001.html": [
[
"/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html",
@@ -327348,7 +327871,85 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?13001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?9001-10000",
{
"timeout": "long"
}
@@ -327364,7 +327965,85 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?13001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?9001-10000",
{
"timeout": "long"
}
@@ -327372,7 +328051,85 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?13001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?9001-10000",
{
"timeout": "long"
}
@@ -327380,7 +328137,49 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?7001-last",
{
"timeout": "long"
}
@@ -327388,7 +328187,133 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?21001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327396,7 +328321,73 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -327404,7 +328395,25 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327412,7 +328421,49 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?7001-last",
{
"timeout": "long"
}
@@ -327420,7 +328471,49 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?7001-last",
{
"timeout": "long"
}
@@ -327428,7 +328521,133 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?10001-10000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?21001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327436,7 +328655,73 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?10001-10000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -327444,7 +328729,25 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327452,7 +328755,49 @@
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html": [
[
- "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html",
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?7001-last",
{
"timeout": "long"
}
@@ -327460,7 +328805,49 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?7001-last",
{
"timeout": "long"
}
@@ -327476,7 +328863,49 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?7001-last",
{
"timeout": "long"
}
@@ -327484,7 +328913,49 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?7001-last",
{
"timeout": "long"
}
@@ -327492,7 +328963,127 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?20001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327500,7 +329091,73 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -327508,7 +329165,25 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327522,7 +329197,49 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?7001-last",
{
"timeout": "long"
}
@@ -327530,7 +329247,127 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?20001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327538,7 +329375,73 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -327546,7 +329449,25 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327554,7 +329475,49 @@
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html": [
[
- "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html",
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?7001-last",
{
"timeout": "long"
}
@@ -327562,7 +329525,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?7001-last",
{
"timeout": "long"
}
@@ -327578,7 +329583,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?7001-last",
{
"timeout": "long"
}
@@ -327586,7 +329633,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?7001-last",
{
"timeout": "long"
}
@@ -327594,7 +329683,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?7001-last",
{
"timeout": "long"
}
@@ -327602,7 +329733,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?7001-last",
{
"timeout": "long"
}
@@ -327610,7 +329783,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?7001-last",
{
"timeout": "long"
}
@@ -327618,7 +329833,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?7001-last",
{
"timeout": "long"
}
@@ -327626,7 +329883,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?7001-last",
{
"timeout": "long"
}
@@ -327634,7 +329933,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?7001-last",
{
"timeout": "long"
}
@@ -327642,7 +329983,127 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?20001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327650,7 +330111,73 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -327658,7 +330185,25 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327666,7 +330211,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?7001-last",
{
"timeout": "long"
}
@@ -327674,7 +330261,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?7001-last",
{
"timeout": "long"
}
@@ -327682,7 +330311,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?7001-last",
{
"timeout": "long"
}
@@ -327690,7 +330361,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?7001-last",
{
"timeout": "long"
}
@@ -327698,7 +330411,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?7001-last",
{
"timeout": "long"
}
@@ -327706,7 +330461,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?7001-last",
{
"timeout": "long"
}
@@ -327714,7 +330511,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?7001-last",
{
"timeout": "long"
}
@@ -327722,7 +330561,133 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?10001-10000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?21001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327730,7 +330695,73 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -327738,7 +330769,25 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327746,7 +330795,49 @@
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html": [
[
- "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html",
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?7001-last",
{
"timeout": "long"
}
@@ -327754,7 +330845,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?9001-10000",
{
"timeout": "long"
}
@@ -327762,7 +330955,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?9001-10000",
{
"timeout": "long"
}
@@ -327842,7 +331137,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?9001-10000",
{
"timeout": "long"
}
@@ -327850,7 +331247,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?9001-10000",
{
"timeout": "long"
}
@@ -327858,7 +331357,145 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?21001-22000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?22001-23000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?23001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327866,7 +331503,25 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327874,7 +331529,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?9001-10000",
{
"timeout": "long"
}
@@ -327882,7 +331639,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?9001-10000",
{
"timeout": "long"
}
@@ -327890,7 +331749,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?9001-10000",
{
"timeout": "long"
}
@@ -327898,7 +331859,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?9001-10000",
{
"timeout": "long"
}
@@ -327906,7 +331969,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?9001-10000",
{
"timeout": "long"
}
@@ -327914,7 +332079,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?9001-10000",
{
"timeout": "long"
}
@@ -327922,7 +332189,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?9001-10000",
{
"timeout": "long"
}
@@ -327930,7 +332299,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?9001-10000",
{
"timeout": "long"
}
@@ -327938,7 +332409,145 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?21001-22000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?22001-23000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?23001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -327946,7 +332555,25 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -327954,7 +332581,109 @@
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html": [
[
- "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html",
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?17001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?9001-10000",
{
"timeout": "long"
}
@@ -327962,7 +332691,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?9001-10000",
{
"timeout": "long"
}
@@ -327970,7 +332783,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?9001-10000",
{
"timeout": "long"
}
@@ -327978,7 +332875,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?9001-10000",
{
"timeout": "long"
}
@@ -328026,7 +333007,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?9001-10000",
{
"timeout": "long"
}
@@ -328034,7 +333099,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?9001-10000",
{
"timeout": "long"
}
@@ -328042,7 +333191,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?9001-10000",
{
"timeout": "long"
}
@@ -328050,7 +333283,133 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?21001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?9001-10000",
{
"timeout": "long"
}
@@ -328058,7 +333417,133 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?21001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?9001-10000",
{
"timeout": "long"
}
@@ -328066,7 +333551,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -328074,7 +333643,73 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -328082,7 +333717,25 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -328090,7 +333743,43 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?6001-last",
{
"timeout": "long"
}
@@ -328098,7 +333787,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?9001-10000",
{
"timeout": "long"
}
@@ -328106,7 +333879,91 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?14001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?9001-10000",
{
"timeout": "long"
}
@@ -328114,7 +333971,145 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?10001-11000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?11001-12000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?12001-13000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?13001-14000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?14001-15000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?15001-16000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?16001-17000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?17001-18000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?18001-19000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?19001-20000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?20001-21000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?21001-22000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?22001-23000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?23001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?9001-10000",
{
"timeout": "long"
}
@@ -328122,7 +334117,73 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?10001-10000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?11001-last",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?7001-8000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?8001-9000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?9001-10000",
{
"timeout": "long"
}
@@ -328130,7 +334191,25 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?3001-last",
{
"timeout": "long"
}
@@ -328138,7 +334217,49 @@
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href.html": [
[
- "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html",
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?1-1000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?1001-2000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?2001-3000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?3001-4000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?4001-5000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?5001-6000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?6001-7000",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?7001-last",
{
"timeout": "long"
}
@@ -328152,7 +334273,19 @@
],
"encoding/single-byte-decoder.html": [
[
- "/encoding/single-byte-decoder.html",
+ "/encoding/single-byte-decoder.html?TextDecoder",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/single-byte-decoder.html?XMLHttpRequest",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "/encoding/single-byte-decoder.html?document",
{
"timeout": "long"
}
@@ -334594,6 +340727,16 @@
{}
]
],
+ "html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html": [
+ [
+ "/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8",
+ {}
+ ],
+ [
+ "/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251",
+ {}
+ ]
+ ],
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html": [
[
"/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html",
@@ -334754,6 +340897,12 @@
{}
]
],
+ "html/rendering/non-replaced-elements/tables/hidden-attr.html": [
+ [
+ "/html/rendering/non-replaced-elements/tables/hidden-attr.html",
+ {}
+ ]
+ ],
"html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html": [
[
"/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html",
@@ -337514,12 +343663,6 @@
{}
]
],
- "html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html": [
- [
- "/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html",
- {}
- ]
- ],
"html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin.html": [
[
"/html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin.html",
@@ -338094,12 +344237,6 @@
{}
]
],
- "html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html": [
- [
- "/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html",
- {}
- ]
- ],
"html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin.html": [
[
"/html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin.html",
@@ -344022,6 +350159,12 @@
{}
]
],
+ "lifecycle/freeze.html": [
+ [
+ "/lifecycle/freeze.html",
+ {}
+ ]
+ ],
"longtask-timing/longtask-attributes.html": [
[
"/longtask-timing/longtask-attributes.html",
@@ -344670,6 +350813,12 @@
{}
]
],
+ "mediacapture-fromelement/historical.html": [
+ [
+ "/mediacapture-fromelement/historical.html",
+ {}
+ ]
+ ],
"mediacapture-fromelement/idlharness.html": [
[
"/mediacapture-fromelement/idlharness.html",
@@ -355754,6 +361903,12 @@
{}
]
],
+ "payment-handler/can-make-payment-event-constructor.https.serviceworker.html": [
+ [
+ "/payment-handler/can-make-payment-event-constructor.https.serviceworker.html",
+ {}
+ ]
+ ],
"payment-handler/can-make-payment-event-constructor.https.worker.js": [
[
"/payment-handler/can-make-payment-event-constructor.https.worker.html",
@@ -355782,6 +361937,24 @@
{}
]
],
+ "payment-handler/payment-request-event-constructor.https.html": [
+ [
+ "/payment-handler/payment-request-event-constructor.https.html",
+ {}
+ ]
+ ],
+ "payment-handler/payment-request-event-constructor.https.serviceworker.html": [
+ [
+ "/payment-handler/payment-request-event-constructor.https.serviceworker.html",
+ {}
+ ]
+ ],
+ "payment-handler/payment-request-event-constructor.https.worker.js": [
+ [
+ "/payment-handler/payment-request-event-constructor.https.worker.html",
+ {}
+ ]
+ ],
"payment-handler/payment-request-event.https.html": [
[
"/payment-handler/payment-request-event.https.html",
@@ -356424,6 +362597,18 @@
{}
]
],
+ "priority-hints/img-attr-named-constructor.tentative.html": [
+ [
+ "/priority-hints/img-attr-named-constructor.tentative.html",
+ {}
+ ]
+ ],
+ "priority-hints/link-attr.tentative.html": [
+ [
+ "/priority-hints/link-attr.tentative.html",
+ {}
+ ]
+ ],
"proximity/ProximitySensor.https.html": [
[
"/proximity/ProximitySensor.https.html",
@@ -365504,6 +371689,12 @@
{}
]
],
+ "resource-timing/resource_timing_buffer_full_eventually.html": [
+ [
+ "/resource-timing/resource_timing_buffer_full_eventually.html",
+ {}
+ ]
+ ],
"resource-timing/resource_timing_buffer_full_when_populate_entries.html": [
[
"/resource-timing/resource_timing_buffer_full_when_populate_entries.html",
@@ -369772,12 +375963,6 @@
{}
]
],
- "touch-events/create-touch-touchlist.html": [
- [
- "/touch-events/create-touch-touchlist.html",
- {}
- ]
- ],
"touch-events/historical.html": [
[
"/touch-events/historical.html",
@@ -376922,6 +383107,12 @@
{}
]
],
+ "workers/modules/dedicated-worker-import-csp.html": [
+ [
+ "/workers/modules/dedicated-worker-import-csp.html",
+ {}
+ ]
+ ],
"workers/modules/dedicated-worker-import-failure.html": [
[
"/workers/modules/dedicated-worker-import-failure.html",
@@ -429760,11 +435951,11 @@
"testharness"
],
"cookie-store/idlharness.tentative.html": [
- "42be9e73d8e6ad3760a4c9871f6f633962f2ab85",
+ "043875184fa56ad41cda11e6f84314a7aebdb17f",
"testharness"
],
"cookie-store/idlharness_serviceworker.js": [
- "516a0596c03b9db2446ca77d70d3eb95f060e895",
+ "42a34fc954f517498ab68ac406c0008342204466",
"support"
],
"cookie-store/idlharness_serviceworker.tentative.https.html": [
@@ -490759,6 +496950,14 @@
"5f2bf4b6712dd230109be62407cd31800451a271",
"testharness"
],
+ "css/css-animations/set-animation-play-state-to-paused-002-ref.html": [
+ "8156c889e4af141b1bdf3df52626c4337b20c611",
+ "support"
+ ],
+ "css/css-animations/set-animation-play-state-to-paused-002.html": [
+ "bd0740fea0d8b0fae749539c9702d3929b0a8093",
+ "reftest"
+ ],
"css/css-backgrounds/OWNERS": [
"656d9f4e3a66f8cb955910171b9997140e4bbd8e",
"support"
@@ -490768,7 +496967,7 @@
"testharness"
],
"css/css-backgrounds/background-332.html": [
- "ba3453739dee1dac840b3916b09cf161752d2f1d",
+ "5831da212a187d7f69864475f1fae96053d3a5a7",
"testharness"
],
"css/css-backgrounds/background-333.html": [
@@ -495383,6 +501582,34 @@
"dfb0708ceeda5812a7434454f39a360d576597ea",
"reftest"
],
+ "css/css-contain/contain-size-006.html": [
+ "2952e1bfc74d784dd2d16867ad95199d78c08efa",
+ "reftest"
+ ],
+ "css/css-contain/contain-size-007.html": [
+ "54d0f08274e3bb380d098fb5dbf9edeee67780f3",
+ "reftest"
+ ],
+ "css/css-contain/contain-size-008.html": [
+ "eaff3d8150332dffa1c70fc75efd66929f8adc79",
+ "reftest"
+ ],
+ "css/css-contain/contain-size-009.html": [
+ "727fa2cfad094c1a4e4785fb71cdc3c09a5d7f1b",
+ "reftest"
+ ],
+ "css/css-contain/contain-size-010.html": [
+ "1bfca9e97f9135b4f4b1b456f017a641c8b85a1c",
+ "reftest"
+ ],
+ "css/css-contain/contain-size-011.html": [
+ "c4b06e89428d47d9777610bb949714f70685dac5",
+ "reftest"
+ ],
+ "css/css-contain/contain-size-012.html": [
+ "ea98297a40836557325e66184854e7f7c3f82660",
+ "reftest"
+ ],
"css/css-contain/contain-size-breaks-001.html": [
"3a3c80029a6c126c584a21e2ff3b25e5459c32e8",
"reftest"
@@ -508939,6 +515166,22 @@
"7d1a1c21880b25fe0126affa850fb13bdf80470b",
"testharness"
],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html": [
+ "7387c69c5f442f72c4f253242823f97b7c26ed83",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html": [
+ "a95963f14832c60c44aa63915ea557fdabe3183f",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html": [
+ "e5c7e8adb9d33b307041429f708aae12b0203a58",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html": [
+ "d24ae3fb7aad80368ea4f22122e18157596bf45a",
+ "testharness"
+ ],
"css/css-grid/alignment/grid-content-distribution-001.html": [
"5622a264eb2dbd6cf621ac97aa4a8ae5db82c6b3",
"reftest"
@@ -509263,6 +515506,22 @@
"7f95db93458af40478ad2cd6b473e8f34f62f3e8",
"testharness"
],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html": [
+ "7f2b8621613e433c84b70310c64051b4b3893a67",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html": [
+ "c25d5c44d2a7d07b789a2cf669f50a21f6df4f8e",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html": [
+ "edf4aec4ce1ba1bbda1a5e6ade38a712522623c5",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html": [
+ "d83d361ef95e1a4c16b33a9057d7559aaa43a242",
+ "testharness"
+ ],
"css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html": [
"cafc54256ea9d0cbf8990a0e04904c7ada8c5894",
"testharness"
@@ -509567,6 +515826,14 @@
"737ff1592425bb6e89a9edebdd072c94e926a1a9",
"testharness"
],
+ "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html": [
+ "8ff9af9ade9e12c95d7e70778635efdc2263e62b",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html": [
+ "28a7a3372ec47cb31afde392da0752032f416512",
+ "testharness"
+ ],
"css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-001.html": [
"e7250b61f6dc882945f73412ec73c0de7f139aad",
"reftest"
@@ -510895,6 +517162,126 @@
"a999a2a7ad8981879cdc984bf602939a23a60ea6",
"testharness"
],
+ "css/css-layout-api/constraints-data-function-failure.https.html": [
+ "5158c7620d4e5aa9d88455fbbd88277572cdcb63",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-data-sab-failure.https.html": [
+ "ce21d5ca8c3059f7f1a6981bda3ff37802cea27d",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-data.https.html": [
+ "371958d97ba951172a283a653f2064def1327a32",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [
+ "ef743bb31278b2a9cb3fef53a1afa430bf347eaf",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [
+ "0eac283ecc975a020075ce274eeb61b9c456b375",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [
+ "ec737a097b1c43e87a75da98808630d87def3820",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [
+ "0f5b86acd6ed8acd65a9f0f42d6cc58a6647fa1a",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [
+ "59a141464e16d51ca3d80c5c4a8288ff8941a499",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [
+ "4e49d34d2fc28f15d52e83c27aa8e4fc49dc40f6",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [
+ "5785b9c3512c74fd297aa73bcdd6265c8008fd4c",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [
+ "a7eafe481062365a3367cedfd30ed3a3a21ec7ab",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [
+ "bb8c0b95f1d382cfce289a17d29dea571e938c2d",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [
+ "a1868fd28509931b4c447c866e7669b7129e8380",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [
+ "53458ee7f683668a621cf82ab30212ee74bad83f",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [
+ "04f4fdd074cf2726211d2718d4aa14b816ca0214",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [
+ "166a66ce956b3b49b2d00ce88e808739065acc9d",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [
+ "9bd9cccaea90f3c472a254ac41738716d921845d",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [
+ "8c82d4c094b1ff74f2638b2182880fc55c00737a",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [
+ "b35d8ca45539171ff4a3360e223bb476b81e131e",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [
+ "c4a30e47f6758a2ec98d4c122b09caf8efb7244d",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [
+ "07155efe3bf9a2a48f1e76180176dca76c2e0096",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [
+ "9a34469e3eb5b89f76739b26082cc97f356c5d3d",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [
+ "fda1fa1d2dc49d9b3721165a6f55eb680ed0d958",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [
+ "8eb9641f5eba2aedcc4f8445ea55eff0574b07a2",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [
+ "392a866a7fd24e58b28169f0aa23a58abceb4c6f",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [
+ "e4e6a64e131de62dd18223bdffe0404f8e890464",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [
+ "6bb68de285ec3eefeaf7ddd6a4bba6ea867865e4",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [
+ "20143f108250817b376b3be48d1569d83d305a08",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [
+ "9afd79b298034ada9c1d46c1c5ce90f40ce619b3",
+ "reftest"
+ ],
+ "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [
+ "a6d5724f25ca05b3d205166a04e9a53f5b227527",
+ "reftest"
+ ],
"css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [
"15f8dde88dd066b5525a6b8990206ac567f48b2a",
"reftest"
@@ -510983,72 +517370,88 @@
"464a929254bba9991b03e2d0d161c0274c7c4b59",
"support"
],
+ "css/css-layout-api/fragment-data-function-failure.https.html": [
+ "3237c10bd95c4d0b25b8fe2db8768b5f7f50f18b",
+ "reftest"
+ ],
+ "css/css-layout-api/fragment-data-immutable.https.html": [
+ "d0321eef8d3412607090ac77ef9b160ff6b2a3cd",
+ "reftest"
+ ],
+ "css/css-layout-api/fragment-data-sab-failure.https.html": [
+ "bc91309fddc5146b0258a4a9e362625c1ef1e5cb",
+ "reftest"
+ ],
+ "css/css-layout-api/fragment-data.https.html": [
+ "525c663bd7e9844af8f42429d936558b95a66188",
+ "reftest"
+ ],
+ "css/css-layout-api/green-square-ref.html": [
+ "925277c0e5cc163b9f39d878b9b39d7f822dda51",
+ "support"
+ ],
"css/css-layout-api/inline-style-layout-function.https.html": [
"f421a9c0fb4c930922281a88eeaa45ae69adab51",
"testharness"
],
"css/css-layout-api/layout-child-absolute.https.html": [
- "39c26ad4eb1c455e911ad1d963494096f8560f9a",
+ "42a689b586a297b9f40f18eee0806d587da00351",
"reftest"
],
"css/css-layout-api/layout-child-before-after.https.html": [
- "77408947564e138eff1f85fa71be05a0303bc9dc",
+ "6836c7c8b81adda98e8de4041e0b505d1e0dbdd7",
"reftest"
],
"css/css-layout-api/layout-child-fixed.https.html": [
- "61fafcd052444e4d996748b9c132101b754747e7",
+ "ca84f12d5982ef9f1a6531f41721d76bf2a1c8c6",
"reftest"
],
"css/css-layout-api/layout-child-float.https.html": [
- "8840ae8518ade98bf38614ef92df20c19b65a667",
+ "a0e2c43f60ba1376090a32df5e9625faaac23274",
"reftest"
],
"css/css-layout-api/layout-child-inflow.https.html": [
- "d1034937a934ac7900ecd59d958de00c769a73cf",
+ "af6fdd340c5e81b02dc99012cc990c0fcc9e68bb",
"reftest"
],
"css/css-layout-api/layout-child-inlines.https.html": [
- "048d886c9388151a792bdc12fb8098aa53249cfd",
+ "fd8144258a9c4ce17e2fb0fc7439060341ad93e7",
"reftest"
],
- "css/css-layout-api/layout-child-ref.html": [
- "1688098230f9fb825bc73134dff15dcf5ff9782d",
- "support"
- ],
"css/css-layout-api/layout-child-text.https.html": [
- "567ff67317cae9906e6d159dc232c41464a4e7c6",
+ "82a8fada6d99e40410ab415e2b34af219dac94c0",
"reftest"
],
"css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html": [
- "7db4f5c2bebe031f0689be2569ba4ca266535052",
+ "5671810501fc3095f8c72b94a1b4ef03711683c3",
"reftest"
],
"css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html": [
- "f22cc9627b7b2ad797cc722f3d369355ffce4f60",
+ "a7c8ead348cc60e4a75b9f059411a0e5da02f469",
"reftest"
],
"css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html": [
- "0e34d5b8b86aa6551e6e6a31eb086bd84b61c636",
+ "4e983d5db151d48f39a018394f2d23bbecbed347",
"reftest"
],
"css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html": [
- "d619b57c395710bc2e133e05774c9a06bfd19749",
+ "52edc3ff48579820b9511de7930aa5f72a7b3c59",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html": [
- "907b9b1255516caab731555686e5c6b5517eb3f9",
+ "3fa3ddc4c728eaa1e120c9aa7845dd60881c6348",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-block-size.https.html": [
- "3560b1f8249f945e1453e3e8e53745ef1941405f",
+ "67ffdaf070d916be1867105239bc477ac2c553ea",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html": [
- "dfc48415ddbfecad7b382c4efe290b1b8da4ebac",
+ "f341a69a76cfd564117f57d67e4740d73592fbf8",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-inline-size.https.html": [
- "bae125f32f28d0cfa7db449cfb10437cb4df12a3",
+ "3f1a6187f48a669d5032f9b161926b588a7ed968",
"reftest"
],
"css/css-layout-api/position-fragment-htb-ltr.https.html": [
@@ -511095,6 +517498,14 @@
"361b3c82c37c0068d23ae23e96d8e9185d3765b0",
"reftest"
],
+ "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [
+ "874a80d6bc5e5cfa8f8fe6c224e7e3c999d81d1e",
+ "support"
+ ],
+ "css/css-layout-api/support/constraints-fixed-block-size.js": [
+ "9e15bc74f332c532b149f43465851d79d9e9c850",
+ "support"
+ ],
"css/css-layout-api/support/constraints-fixed-inline-size.js": [
"ed0224a380c50a7e83d23a95be5a4348ce5bf706",
"support"
@@ -514292,7 +520703,7 @@
"testharness"
],
"css/css-properties-values-api/registered-property-cssom.html": [
- "0fecf81c4089cb67107a9339ee52cd2c44cde60b",
+ "01035477e322cd4465fd53619592cc2afe11e203",
"testharness"
],
"css/css-properties-values-api/registered-property-initial.html": [
@@ -514379,6 +520790,14 @@
"f11765ff416808470d52dde2500106c294243469",
"reftest"
],
+ "css/css-pseudo/placeholder-input-number-notref.html": [
+ "c005e33b7e50074d19c0afd7d9790a38b29ef52e",
+ "support"
+ ],
+ "css/css-pseudo/placeholder-input-number.html": [
+ "90f5c1a64e8171cfce64820b30ad7feafd6e5b06",
+ "reftest"
+ ],
"css/css-regions/OWNERS": [
"a10a15c87ddef84355e4bbc8b8966cf0738e9d69",
"support"
@@ -517347,6 +523766,10 @@
"a7cbad00762e590050f118a84ef5d6a6fbbb3db3",
"reftest"
],
+ "css/css-shapes/shape-outside/shape-image/shape-image-027.html": [
+ "14d6e34ac39967dcf29b3140c5745458f26ed59d",
+ "reftest"
+ ],
"css/css-shapes/shape-outside/shape-image/support/animated.gif": [
"c5252926d8dbf82c06cdb615fda708ca7728f0bb",
"support"
@@ -529056,7 +535479,7 @@
"support"
],
"css/css-transitions/support/properties.js": [
- "c789935bb1a3077f539d20363e6dbeeda1d8cc6e",
+ "a9958d79bf07ddc168a9face2a9ced0f7bf3ce7a",
"support"
],
"css/css-transitions/support/ruler-h-50%.png": [
@@ -531804,11 +538227,11 @@
"reftest"
],
"css/css-ui/outline-017.html": [
- "ea35906d51fbff221644d993c0f2ca3ca3fbdd71",
+ "ac0b5e2868e9c937cf1e9b603198108a63105e67",
"testharness"
],
"css/css-ui/outline-018.html": [
- "3135c237dffc1408758b1c8dc6721921f9fb0279",
+ "6f966db0723027aa857bce91fd3dfe1939c09732",
"testharness"
],
"css/css-ui/outline-019.html": [
@@ -544331,6 +550754,10 @@
"0e795989a9acaa0d153c31a0a965f6aa7600e024",
"support"
],
+ "css/support/grid.css": [
+ "6bb300b8baebf700481ea162fb7b41913fcca29c",
+ "support"
+ ],
"css/support/import-green.css": [
"db4f420efdb292d6520be1a3bf052ed3f6f9e7e3",
"support"
@@ -545807,8 +552234,20 @@
"360f5b95b4eef2bf80101f172557f2fe65f57ca7",
"reftest"
],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html": [
+ "ff91f01a50b38d04a7eb2e90c0bdc8783d8119a3",
+ "support"
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html": [
+ "5e3d3c92160892f27ad68f404df1b4268ade951b",
+ "reftest"
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html": [
+ "eb0fef0df552a64733d7e46a1b8752d6825f1f8b",
+ "reftest"
+ ],
"css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list": [
- "3e3a27b01ddb31c64f0e223a990cb3818aea6b80",
+ "361cc42bb96b840d65cdda9593a543388173c4a8",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/dependent-builtin-ref.html": [
@@ -549916,7 +556355,7 @@
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list": [
- "dd45c0949b1301d526a2ea5b66684e1c7a8b812c",
+ "dcb7840f1dd2ccd57087826c2e11b960589ff729",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-border-box-001-ref.html": [
@@ -550079,18 +556518,6 @@
"61d2d2a07e2dcbd24a15b733f7c9d7dd3735ebd1",
"reftest"
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html": [
- "80ba877ecdbb12e5f000dee707c5af2df4629a9b",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html": [
- "0dad5434390d2500568fab4ca82d98147995f2a4",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html": [
- "7eaa3c8183209024684ff9a15f6b332802d91cb6",
- "reftest"
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041-ref.html": [
"dcdc6fdf1ff9c749b6ed0dabc9029e641336832b",
"support"
@@ -550115,18 +556542,6 @@
"c669e12f7d26e25364eab72272e5964bb989cad3",
"reftest"
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html": [
- "538d22bff3687524f756303205ad18dac9e182cf",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html": [
- "8458a75aec990428264f039927377d683e4bfef9",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html": [
- "bfb735e59e22b55f8e3c42827ca8bcbe7a612774",
- "reftest"
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047-ref.html": [
"4a138f3175f7d46a2a38643e9803ede5408db9cf",
"support"
@@ -550415,22 +556830,6 @@
"628ef0b6c08230db7fca6639be71c63c0001156f",
"reftest"
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html": [
- "e32f844e70a6f1b7c5c25fa691ba77321b557213",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html": [
- "1d24d1acde6249154c8aecccf51c3f3d5bfc3f36",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html": [
- "7c0b699db61f02c5f197133c66439f699a80fd70",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html": [
- "8ad1c65a27f12deb7b75865eb2b89905a4bbd4f0",
- "reftest"
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020-ref.html": [
"8e109e72edb9cb0d3c97677db8a98462da83054f",
"support"
@@ -550671,46 +557070,6 @@
"9393c2e2250dfc1bf3ffdd68f2c352890d1e0ee8",
"reftest"
],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html": [
- "322ec7ee1fb932cb6f1908c376be2915d6e50459",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html": [
- "9fea24b92061f9f679b9565d9040e4b29a18b4c3",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html": [
- "e91e35a1af0a2fa21e31f8ea3fa903f6d862ad13",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html": [
- "b27883660453186155c9b761402ae4c038f2394c",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html": [
- "6753ffe3a09c2a71fc67efcd1041ed90de12e87c",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html": [
- "de39a15da093018531838cac20c59494cb6050b2",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html": [
- "05d0d53f6d038702733e4acd9562e35b2b992881",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html": [
- "0f653c07806f0064d1583a7ddaeb171734188062",
- "reftest"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html": [
- "7bbccdb15fdf67a67bbc243c342c668fbef23af8",
- "support"
- ],
- "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html": [
- "217e140bdd429d6889102e43253e6fb64dca4705",
- "reftest"
- ],
"css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032-ref.html": [
"890dd0754f2c985719c75200dd9ef70e8c1abe14",
"support"
@@ -550724,7 +557083,7 @@
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter": [
- "2c4512ec008c997d1254b5822ade227c057b7e24",
+ "3055eafd3bf887f11c0c386419397910ad438d23",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh": [
@@ -553764,7 +560123,7 @@
"support"
],
"docs/_writing-tests/testdriver.md": [
- "2ffb3871fb13e6acd3171205bf80517dca06bcfe",
+ "92538a06939f447ae351409886833494f42f36ec",
"support"
],
"docs/_writing-tests/testharness-api.md": [
@@ -554104,7 +560463,7 @@
"testharness"
],
"dom/interfaces.html": [
- "3308c9f3341c12ce99217309eba608e50cca669d",
+ "5053c2d407ac6261313df3f9d9699f08e9f89d4d",
"testharness"
],
"dom/lists/DOMTokenList-Iterable.html": [
@@ -556180,7 +562539,7 @@
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html": [
- "aef28a54f483ec66edbd9b0ea500d25f3966c4cb",
+ "bf13e044c17b8789f91a276db5f5d4c999b580da",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors.html": [
@@ -556188,11 +562547,11 @@
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html": [
- "8c76fc5373dbd2c62c1f15b97889cb43a4c2a6ef",
+ "8a30b25890d5a12aac42456f689fd875deda2c5b",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html": [
- "1d5e6367dd725c7d8863503e66b9750f469ab3ee",
+ "525a6ebf58e88289d0afffcfca2ef4124f4ead3c",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-decoder.js": [
@@ -556200,7 +562559,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html": [
- "42ac7feefc19dc6ef09ff292bc8584dd376802a2",
+ "3c7c5a00b11e1ad9b5a02ece0aa047fcfe834359",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.headers": [
@@ -556208,7 +562567,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html": [
- "64fcbe6783d68372c9a03a1e732ad7acbfff925f",
+ "bcfbb57961356d1e31750ac359e9d3f7c0a88f53",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html.headers": [
@@ -556216,7 +562575,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html": [
- "e7897095737650b30287cf4e618f5502d8bf86e2",
+ "23d5f4f9d39d7fa09ff318cabb5ec40bffdd052c",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.headers": [
@@ -556224,7 +562583,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html": [
- "f4245d39d4435d9c00b981d220677ff0e3579106",
+ "8f2cb89122e9c0f0e3ab3bf77d3b5bff37aa6134",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html.headers": [
@@ -556232,7 +562591,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html": [
- "2b4e86fdf26006eefd3ac5093bda1d02258b0121",
+ "f162cd29b4d351891bb0bdb5b4146960d457d8b2",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html.headers": [
@@ -556240,7 +562599,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html": [
- "18240913dc69be3419e51987315842b3168253c8",
+ "392b0f0499cec695478b661ca1507d457c30fce6",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html.headers": [
@@ -556248,7 +562607,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html": [
- "3ff8533d6e7c59ea4a2fe98255e140b7b583ef2c",
+ "033c5ce0f5b992f81ccf4838da120ea097268548",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.headers": [
@@ -556256,7 +562615,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html": [
- "eeb61c360f85949479c970652c81532d27e38892",
+ "fc46574bdb29fdd33a850b5cfc15640e02587185",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html.headers": [
@@ -556264,7 +562623,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html": [
- "6c1e0582aae5a1dc83ea286feebebe69c6e218e8",
+ "d29e9e9db1c7f578e440992655930d4cd5c8d7be",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html.headers": [
@@ -556272,7 +562631,7 @@
"support"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html": [
- "d0e0236048f578b35a5956295d2a295660a2c297",
+ "9d5acd1a4f5e064e2202ddbad2a17ef4ab488c4f",
"testharness"
],
"encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html.headers": [
@@ -556324,7 +562683,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html": [
- "25764a359d3d95c75a7e3b2008e912c80ef69194",
+ "da92868efb96b1748a7e4f285020f0c804e4c400",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors.html": [
@@ -556332,7 +562691,7 @@
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html": [
- "3982165d2f78d500d87fa9a4590da8cdc3c0ae9c",
+ "2cb6b373f63113b5624f71cb216ccf8bed37e7b5",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decoder.js": [
@@ -556340,7 +562699,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html": [
- "d3751457c76d5dacd10a7dad1f22ceb7837c68a2",
+ "621b1de6e75367b61d375e7dbc7bfe8c39e710bd",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html.headers": [
@@ -556348,7 +562707,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html": [
- "d2cbf81979d2755352b9f007c40a6340b60e74d3",
+ "a22811fdbd126d98b234c2618919f65b426bfeec",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html.headers": [
@@ -556356,7 +562715,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html": [
- "b6b1deba45ea2621747d292443758adfb075e27e",
+ "d938cb4fbbed96bfbb220f11877ca27ee03871b4",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html.headers": [
@@ -556364,7 +562723,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html": [
- "4cb2e185dedbd21c3632b7a31e883580e71b366f",
+ "f9ad40795ffb35ee57725f047470f9f8b989af09",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html.headers": [
@@ -556376,7 +562735,7 @@
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html": [
- "89dd8a641b8eb05e47cc2d23dd452cdfc9f9dfc9",
+ "507fc186dc5c64e1e3c4293a88a1754ef90b9d00",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html.headers": [
@@ -556384,7 +562743,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html": [
- "cdc3fe8fc70539fc6415e2d3b43fda6f87d09262",
+ "c50d0ffb66e826113397c0af8ef20b7e9794a179",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html.headers": [
@@ -556392,7 +562751,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html": [
- "19c4224bda8f399f090f3ea4d77c10a0f47513e8",
+ "85fe1bf7660307d50b86f4387c5a5046ca7aa299",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html.headers": [
@@ -556400,7 +562759,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html": [
- "a99791f74775a996f49e4b60a369d5b81d289c0d",
+ "e6c2f034f4ab0e02fa5d04a5f9c5228508fa4403",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html.headers": [
@@ -556408,7 +562767,7 @@
"support"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html": [
- "d823114d271354e58578547d0de3b570d9705282",
+ "0ef7ca4a1a35b65def6b7bbe79f34e5f6144be88",
"testharness"
],
"encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html.headers": [
@@ -556452,39 +562811,39 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html": [
- "d4d171de17f81f98cd240ff08257fcb33e1d2b54",
+ "bd6d995cc4f6d72956ce7119cb288946500f2c15",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html": [
- "f2c37c888dff50feebd5797adfe265e82ae2afde",
+ "ddc4b88916e3f3dc5f919789945b11e434dd76b2",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html": [
- "c866259244a4460f41869311e9ee194fb57045ca",
+ "f3de45d5173c529d05bb906e8191b30fe5dac66c",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html": [
- "b62ce57f3f53cc455507c64266f6b9e4e6ad25f8",
+ "30b69d7eec2d048b6a1acd440ca7515ee76327b5",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html": [
- "ce645b76538fb62b63e9a9cd71bdfc57293f71f9",
+ "48f45d5a25657754e42622e9f79d02e739d77258",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html": [
- "bdc93e4f8aa501cb1d144278cb30df9c8e1ee76b",
+ "63c2f9498942d7b13bc26ec421abd5e72c788ff2",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html": [
- "14db20c9e48a3ba187d86225af2173f509ffc69d",
+ "c9c5b8250cccc94cbc749ddacd18b7ffc6473442",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html": [
- "96d67ef3a09f579192b60469b1c6f0fcea709e83",
+ "03614895d1a2522a457144f087e351a424e92dcf",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decode.html": [
- "aa249b101da22936c53da5a3ae535bdac2bcd8d9",
+ "abdbda4bc542db01ddbf7d4c9f66871d0058e649",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-decoder.js": [
@@ -556492,7 +562851,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html": [
- "22a6fef29cf831742bea680190d79a7ad9f7a344",
+ "f94b04e6ab996b9e5b0ebdd3f50bff13a04bd127",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html.headers": [
@@ -556500,7 +562859,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html": [
- "034b3f10660076f877d7e78699cd5103d8c955f7",
+ "6c166a30f84f442a3aeb803aa9861c406718baee",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html.headers": [
@@ -556508,7 +562867,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html": [
- "abe031cce4bec1c40f37fcff428b874ef3ef1f76",
+ "525bdeabe49b13f9b5bb5e2156ad66c8f3b230aa",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html.headers": [
@@ -556516,7 +562875,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html": [
- "dcba1f4b6755e55ed5dbfa3d2cff642324aa6c2a",
+ "51f0add5cd60a3c5a1fa0180bd179706c4854acd",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html.headers": [
@@ -556524,7 +562883,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html": [
- "81a3377b7bcef81ea1472c4751e8e8d4724a603b",
+ "353830975d0543c9b046fe464d5807f74024837b",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html.headers": [
@@ -556532,7 +562891,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html": [
- "e1e71336c2799dad56fef0e2d84f626ed7f86e5e",
+ "be457f064d92e48d7bda8a702f6cbb4a2da44a3b",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html.headers": [
@@ -556540,7 +562899,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html": [
- "edf365f82441e1e50f128be66dc11ccb71402e16",
+ "3d5d0c96a849e1703eb26e639a6aa3fe295550ae",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html.headers": [
@@ -556548,7 +562907,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html": [
- "2d537643263ef5731f5cfe91a9023173c9402b23",
+ "cef1e1c91b0ef8cab130956fcb11edf73c277871",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html.headers": [
@@ -556556,7 +562915,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html": [
- "9879e7651eae4894739cdf47d27e557cd986ecda",
+ "2a7f888b37dfc07cd8b8ea193a2007beaa5c6082",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html.headers": [
@@ -556564,7 +562923,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html": [
- "f435452102431058c9337d5bd1f7a133f9d0bb97",
+ "e156f06bc96da020bcf638d3687bdfad07f0c813",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html.headers": [
@@ -556572,7 +562931,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html": [
- "cfd117bfde470ed113357ebcb9d47a8f106c0ff0",
+ "3b4a6dac670f2524430c9a1536d47d2ae99ec84d",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html.headers": [
@@ -556580,7 +562939,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html": [
- "94990204891a673ed591a05bd4423b8d22a907ac",
+ "191b78f2db1a27fa19970985a330e77ed5e48578",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html.headers": [
@@ -556588,7 +562947,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html": [
- "e3ef37abf1fb9d6a39f391c4e5a4b376cad808c8",
+ "45a31e542d8ce2839199b9d5598c7661bc3c1086",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html.headers": [
@@ -556596,7 +562955,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html": [
- "a1cfb188c286c2f34d95fe2ca180dd577da1d7b5",
+ "229147d988fe811900fd70479e9fe24212722785",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html.headers": [
@@ -556604,7 +562963,7 @@
"support"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html": [
- "8aec6118dd060483017b49e802cfe3ad30cef367",
+ "6d44e049b4acc41e5522c0d66e8823079f0c456c",
"testharness"
],
"encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html.headers": [
@@ -556688,11 +563047,11 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html": [
- "9e729590a574c8e0a9f6e07d378197c2bafde0a2",
+ "a2d3709f65d703d9518ec577823fbd9919eea5fd",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html": [
- "d4a4a944fc1cf03a0780fcf4309e4061324c8098",
+ "612b024e2237c8a36506a1104665e7848d7a6ebd",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-errors.html": [
@@ -556700,35 +563059,35 @@
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html": [
- "bf9d9edd88da4ddff223800fa6ae68852b73cb99",
+ "3268a3d47cb3dedc7a351f8801f56dd498cb8947",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html": [
- "6ae51030974e7e607c6a3fea34eafbf10de62605",
+ "b90a6e57dc93ddc00b6fdc83c90c044c10d55e07",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html": [
- "c8381944a21d5b44dc9a984068987a4030dd5319",
+ "a765380a8ac54c9e61e2d7b349faa14d0e99bd03",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html": [
- "6eb5b0d291030e565210ae8546f14e641b8a187b",
+ "a5b6c6964b6a8db2b064b23c3b6bfce08ee89189",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html": [
- "430d70a811f3469fdbf90159b6a78d2b2fdd93da",
+ "50f5d0981e0a76ee172e71bd6631bfa1c70a9f42",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html": [
- "f9ea25a81d5268a20b7a9673496142fba7f14189",
+ "70d7606a3c067b5c3d1c6f718ffd797427b5e687",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html": [
- "8306399cd88ee735be247e8a3f102a03ff905ac6",
+ "fe47649bcc1adaa7ab5cdbc023f0d2f302ae58cd",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decode.html": [
- "294baa8a7364504443d9ddbabeadfd8fda0e19f3",
+ "5d59a4333e4f15676035025cb8ead4b9f2484181",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-decoder.js": [
@@ -556736,7 +563095,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html": [
- "5530823dd5556d646b4a0f9090cf402e847c4827",
+ "f0eabf16eb6d56d4c6a98df6cacf5c69b6f33a7e",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html.headers": [
@@ -556744,7 +563103,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html": [
- "569abb7b5211b3c404a8c5b73781fa576c471770",
+ "ec39f68af9894ab6b633d57ac58060ae1ee49d77",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html.headers": [
@@ -556752,19 +563111,15 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html": [
- "f9710ba55e4f6781f14f7b292c767cf87fc40090",
+ "369a386e8983d3c15e3cd7ac6ff8ba10b28cfa5e",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html.headers": [
"c79f9150befa2f7ce67d17069da7fb66f7f22ca0",
"support"
],
- "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers": [
- "c79f9150befa2f7ce67d17069da7fb66f7f22ca0",
- "support"
- ],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html": [
- "936dedf12d56abe3083061a68b6be806a8cb8503",
+ "9aba79ce67863933b57323f7f6df3f3ce09b492d",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.headers": [
@@ -556772,7 +563127,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html": [
- "5a480ddabd671ab24b9fbc6485ae1bb543787ddb",
+ "152db8284caf186d03bfca5396a72fe6a1715449",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html.headers": [
@@ -556780,7 +563135,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html": [
- "3a161c00a862191e63b03672edd165a4b2488bf4",
+ "0dc06f5158ee41f26e801c2a584bd207118d8fbc",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html.headers": [
@@ -556788,7 +563143,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html": [
- "196a6bf5cb61ae5743f676ca18c59b5c559926ec",
+ "3cb58cf45311173bd63449dd264ebc8e77e7461f",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html.headers": [
@@ -556796,7 +563151,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html": [
- "b7d941acafd598b06b2898108815f5a3c849b7e2",
+ "4fbe2e412e07a5cc24876287f0ab57dbf83b9aa6",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html.headers": [
@@ -556804,7 +563159,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html": [
- "c67014bd3da49c1d87c830af119c5b3c3e8deb65",
+ "8ee3ad26f51776368b5f86f4302b654523d8c5bc",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html.headers": [
@@ -556812,7 +563167,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html": [
- "b1fb4fcb8ea4ef38ef88df5229e3d315790a8110",
+ "29531cacec50549c48d974b7cbbb1b70da4be633",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html.headers": [
@@ -556820,7 +563175,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html": [
- "7ce4b142ff073509b76b4f473dd1bff1211ce8c8",
+ "9b6d8d4ad8412aef0c1ee1300ff14f8730865200",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html.headers": [
@@ -556828,7 +563183,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html": [
- "934c25bf57b7a57390d38cc2f21230b16e142241",
+ "e3d95055e6f362332fd1d4513f470695c25e530a",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html.headers": [
@@ -556836,7 +563191,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html": [
- "e855d30690f5aed7043442f233cbb77fc209bca0",
+ "01d7933e6995c9afbeba289b0e2219d636b8cc7f",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html.headers": [
@@ -556844,7 +563199,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html": [
- "f4caa1544f2291f394f58a4835f1fb5962baac14",
+ "450bf6c9b7250a7d42c8708169836c8aed2aedd4",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html.headers": [
@@ -556852,7 +563207,7 @@
"support"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html": [
- "20b152603cbca961959653c8c042ea004f58334f",
+ "447babc2cfcbc5fc54662313b173d143e975b46c",
"testharness"
],
"encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html.headers": [
@@ -556956,15 +563311,15 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html": [
- "1e41252d834091a1f2069eb83ceb04c1ae502aed",
+ "91e0b0cb5f782cb1bd195660d17c66d78a137cb4",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html": [
- "61bff3fa165736f77d1f09b0d3087acaa66f2fa9",
+ "ae14165428b3673d2cd527cff137259957ea7086",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html": [
- "bb60208f1d75de351e057310415db81869f39be6",
+ "4002f3e151202fcbb53c3a6f29e6a36551e61a45",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-decode-errors.html": [
@@ -556972,15 +563327,15 @@
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-decode-extra.html": [
- "2f8917690621f23c8844bf7a1f93713e878f6841",
+ "a4583386ccad9d8d7b660c0d244d0168376755e9",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html": [
- "3e0cba9f9ca8692767e535a5f4328edec151d3fb",
+ "3d15d5795e6c21a33ac8f98a25c5b6f8b871d2f7",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-decode.html": [
- "a1d709dad31f27e9c3a5c958a3f666bf79c6fe9f",
+ "2837ce392411f8b9fbc7c4a4fbade9f4f0054806",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-decoder.js": [
@@ -556996,7 +563351,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html": [
- "e9ab06a4999556053f53e5c9ee951d47411b0d2b",
+ "4a41623b8368b6c4c5fcc52dcc390a3eee9485e4",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html.headers": [
@@ -557004,7 +563359,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html": [
- "136bc3abafdfe069b32ddfae85056bbaffd0d7ca",
+ "c514b499b57d3bcf662dd2b954f4fe5256a72d8a",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html.headers": [
@@ -557012,7 +563367,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html": [
- "ed5c833f250f1713193b56371298c73b4b412d50",
+ "9c3eca4c97f67b7ff880416a0a225c185adb75c8",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html.headers": [
@@ -557020,7 +563375,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html": [
- "7201211915cb8ae3ac0b7f5656c295f3c08b3089",
+ "af131ebf35d5750b332fd4e5c9399c03dc3d0a20",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html.headers": [
@@ -557028,7 +563383,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html": [
- "3eb05f9627d84506e9d730b9e26021403963d0f9",
+ "fe3afde373c382f9146b5fa0a78a89fccb6c0958",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html.headers": [
@@ -557036,7 +563391,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html": [
- "d4e49734b115c0bf3f0ab2ddc7a3de4556866e9c",
+ "211d59bef871f43bb979550d69c91e70dae79272",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html.headers": [
@@ -557044,7 +563399,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html": [
- "b24f67557b5e6ef966484b4c0b6b1c90a69b24ee",
+ "abbb5eb1a72e74e2b17806ce88bc53020b8b9047",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html.headers": [
@@ -557052,7 +563407,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html": [
- "f4ce13cd0e392452ce160d0b688315ef039e2e56",
+ "a3f87cfd6a2b9b3f25ca57526c3e1a511f499c09",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html.headers": [
@@ -557060,11 +563415,11 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html": [
- "4e83b4a9d2695780b0ad87ac8519f36b83778ee6",
+ "a99abd3f7f02c3b47ffe1138aa59946a7bf80af6",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html": [
- "6014d5a50918d4d16389df0c7a07f71bd78babeb",
+ "460dc28c00c2d39d04f36c7f49951ed2337489b5",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html.headers": [
@@ -557072,7 +563427,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form.html": [
- "3d272e5b51ca3bcd8bb34807024df71807da3c05",
+ "44d2bb9c0707c78e0e8fd07d0a8dea7694972af4",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-form.html.headers": [
@@ -557080,7 +563435,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html": [
- "90cbc57fb49501ff276c2198235f0d5c2d5561eb",
+ "cd684a384fa563ba8bad826bdb77878e71198590",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html.headers": [
@@ -557088,7 +563443,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html": [
- "2ec76262a6bc1a789999fd51b394a66a878bc6bf",
+ "cfa27f2ec91d0f38416a12f9581eb09e3169f91b",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html.headers": [
@@ -557096,7 +563451,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html": [
- "ba76ce0d3d04f97074c712ce6b11a7d6b523fb33",
+ "f55a2bfb2bc00720126b19e7aace7869b2e0e5c5",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html.headers": [
@@ -557104,7 +563459,7 @@
"support"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href.html": [
- "6df38fd56a6eee0b2a8fbe84dc62258fef405ea9",
+ "7470f06a2c26f807162834dec74e848b7bd1a004",
"testharness"
],
"encoding/legacy-mb-tchinese/big5/big5-encode-href.html.headers": [
@@ -557179,14 +563534,30 @@
"10ebae214ee7307c8087206a318ce8b5765ed8e9",
"testharness"
],
+ "encoding/resources/decode-common.js": [
+ "36c584cd9a1d53ad082cb7333e9a58b4b98bc764",
+ "support"
+ ],
"encoding/resources/decoding-helpers.js": [
"e8e58f30dff991e6aa6a20553081a1754bf02300",
"support"
],
+ "encoding/resources/encode-form-common.js": [
+ "41e0388191f050af6c52ee0269c994b843dca5ea",
+ "support"
+ ],
+ "encoding/resources/encode-href-common.js": [
+ "c3caa03d8bbbe33d586f28b8ebbeecbe565bb919",
+ "support"
+ ],
"encoding/resources/encodings.js": [
"66626403db30a2778878a187df339b0bfd767495",
"support"
],
+ "encoding/resources/ranges.js": [
+ "2e09b999f7839eee5286dff052791dfd6a92cbef",
+ "support"
+ ],
"encoding/resources/single-byte-raw.py": [
"a5e5464b00944713d7e90d3e5f9313ef2924b375",
"support"
@@ -557228,7 +563599,7 @@
"support"
],
"encoding/single-byte-decoder.html": [
- "2f64550e5e845fa2de949577f0756a021bede269",
+ "60eb39cc7d5115ee50611e81bbd332228ef4e03b",
"testharness"
],
"encoding/textdecoder-byte-order-marks.html": [
@@ -570307,6 +576678,10 @@
"34aa7e5a7d4daba412fa700859913cf9def77565",
"testharness"
],
+ "html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html": [
+ "582924c0e77e2519c4bac3f5bdc00f55a35f715b",
+ "testharness"
+ ],
"html/infrastructure/urls/resolving-urls/query-encoding/resources/blank.py": [
"e55787bc9f46f01aece15afed2ce0686d143dc03",
"support"
@@ -570324,7 +576699,7 @@
"support"
],
"html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js": [
- "af372062048142740f83dd95feded927cf3a225b",
+ "d9e268c55bb478e5f1bc2fd88c5cb415b462179f",
"support"
],
"html/infrastructure/urls/resolving-urls/query-encoding/resources/resource.py": [
@@ -570987,6 +577362,10 @@
"610932708cb18b8022ca64b8c9f3f59d8cf1ae56",
"testharness"
],
+ "html/rendering/non-replaced-elements/tables/hidden-attr.html": [
+ "dd0173850f4593c883b24f28a750462bf0bae0e5",
+ "testharness"
+ ],
"html/rendering/non-replaced-elements/tables/table-border-1-ref.html": [
"1f3aa494ba434211a8cdcd1be289e702856fa05a",
"support"
@@ -573443,10 +579822,6 @@
"a1657fc9e655ad0a30ced47a1412b6c34ba964b9",
"support"
],
- "html/semantics/embedded-content/resources/test_page.html": [
- "7865ad89746586ea71fa92621192417de57223ca",
- "support"
- ],
"html/semantics/embedded-content/svg/.gitkeep": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
@@ -574171,10 +580546,6 @@
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
- "html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html": [
- "55e68ad2312d4079ce4be558ef361f6f56977d58",
- "testharness"
- ],
"html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin.html": [
"3d75c8c998b3f98f2023311826dcd1d4c21d3361",
"testharness"
@@ -574312,15 +580683,15 @@
"testharness"
],
"html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html": [
- "4010899a36a52436b56867762390e9b27768f706",
+ "5feddab3d35d2b430f8cc490539a44b45d3f9d2e",
"testharness"
],
"html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html": [
- "9d640f248b376f6bc6a95d09b948e49a3f655954",
+ "b8713028abdcf1e30cd6d8b2bcbf4ce2d75aade9",
"testharness"
],
"html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html": [
- "96453a352d2bed1d208e203594bcb24ab8ee37cd",
+ "fbd0fec2032b0d8acb8d3ce7f15994a78c52437e",
"testharness"
],
"html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation-manual.html": [
@@ -574687,6 +581058,10 @@
"508194946db6e8f892208a8b413565a4d76e6687",
"support"
],
+ "html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html": [
+ "f079e597fe12b27f9071e124b13d4e369abbdce0",
+ "support"
+ ],
"html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html": [
"9dd191a0b5d9c15972363e260228956f7f487c7d",
"support"
@@ -574911,10 +581286,6 @@
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
- "html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html": [
- "c534d05044768f72015e9cea7dd45b582ecf0368",
- "testharness"
- ],
"html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin.html": [
"f9f22673579147c7591d5f71467d6655140702b9",
"testharness"
@@ -577560,11 +583931,11 @@
"testharness"
],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html": [
- "20a6c6de42fe72fe375ccd8c9c8763191afa78f9",
+ "d49f673f10045316bf897ded5d0cd24ab3933a5b",
"testharness"
],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html": [
- "93f2cc8f3e88e0cbf508acd64f9a28bdcaff25b0",
+ "2566b1d80cd2617c62667c300fe9568a640fe1a5",
"testharness"
],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-of-promise-result.html": [
@@ -581487,6 +587858,18 @@
"28b559875ce9514702d181cb4cb5e0a207083e2d",
"testharness"
],
+ "lifecycle/freeze.html": [
+ "aca6ab2b23924ff891dc2abc26eb3067ad099e5b",
+ "testharness"
+ ],
+ "lifecycle/resources/foo.txt": [
+ "b909d6288b51d2b2dfe06382f057a5892826949b",
+ "support"
+ ],
+ "lifecycle/resources/window.html": [
+ "3c839ba3697d5ce8bcda99824af7dea7b37534c1",
+ "support"
+ ],
"longtask-timing/OWNERS": [
"30a9c29ba53bac131c0cca801c01dddb4779824e",
"support"
@@ -582624,13 +589007,17 @@
"testharness"
],
"mediacapture-fromelement/creation.html": [
- "18289cfde81c16db6d3e728623113be0bde3454f",
+ "7da9c5086e88c1cf97b492b1bedce6897602a5c8",
"testharness"
],
"mediacapture-fromelement/ended.html": [
"c816abe4302804f8e3ba65bad23443812111acb1",
"testharness"
],
+ "mediacapture-fromelement/historical.html": [
+ "9fa955b3f3a20222b140db3e706967ddb3979e25",
+ "testharness"
+ ],
"mediacapture-fromelement/idlharness.html": [
"ceeb48e7982eb88561f4c1630cb0fcf15d9cf73c",
"testharness"
@@ -590948,11 +597335,19 @@
"support"
],
"payment-handler/can-make-payment-event-constructor.https.html": [
- "f48b21e7376a7a45b7e121a4331362ecd46f8dcd",
+ "5eeaa854caf0fb1acdf97bc5ff2ccf7124666e19",
+ "testharness"
+ ],
+ "payment-handler/can-make-payment-event-constructor.https.serviceworker.html": [
+ "c9cc7e69b6d7c3e9c3534f35e2d00641907eff4a",
"testharness"
],
+ "payment-handler/can-make-payment-event-constructor.https.serviceworker.js": [
+ "458ed84353bd49b297e1631520f543191b27fc29",
+ "support"
+ ],
"payment-handler/can-make-payment-event-constructor.https.worker.js": [
- "4a77b5b3444c490b673b7c08862f1565b705f0e2",
+ "e5fd666fc5cf21a62db0b7fd95ba669fcfbdb7ff",
"testharness"
],
"payment-handler/can-make-payment-event.https.html": [
@@ -590975,6 +597370,22 @@
"372d636227a5be6ede37e7d67cf24d03030eccf5",
"testharness"
],
+ "payment-handler/payment-request-event-constructor.https.html": [
+ "b07b93ae26288b6c8a25ddf008c7d12176fa81ef",
+ "testharness"
+ ],
+ "payment-handler/payment-request-event-constructor.https.serviceworker.html": [
+ "b93e463283262caff46dd629164d98a785d7b58b",
+ "testharness"
+ ],
+ "payment-handler/payment-request-event-constructor.https.serviceworker.js": [
+ "40e4245cc754e24c6ba757b8ab6ed67f16c6d1e8",
+ "support"
+ ],
+ "payment-handler/payment-request-event-constructor.https.worker.js": [
+ "6f034b0c41cbcd5c21992d8650b015a1a7844eeb",
+ "testharness"
+ ],
"payment-handler/payment-request-event.https.html": [
"37e76b630197399daa3eb5ea49e8a4150c61c29c",
"testharness"
@@ -592219,6 +598630,22 @@
"f64f2ab5d0afa93e5adfa327e478936c0e295823",
"support"
],
+ "priority-hints/OWNERS": [
+ "bb8339b99aba30b127cd21f1396278ba55aec1c9",
+ "support"
+ ],
+ "priority-hints/img-attr-named-constructor.tentative.html": [
+ "7c30cb250fb854916a8bf87a4fd5c049ee1dcf5b",
+ "testharness"
+ ],
+ "priority-hints/link-attr.tentative.html": [
+ "39dd57841d9752f9220473c5de3a99d1c8ca18a1",
+ "testharness"
+ ],
+ "priority-hints/resources/stylesheet.css": [
+ "bb230110dd1cf4647e020d7172bc375e972c7b41",
+ "support"
+ ],
"proximity/OWNERS": [
"8de2a4a7f850b2d52ab3102b585fe38828b6d08d",
"support"
@@ -600427,6 +606854,10 @@
"ccf716aec242f3ec6d3754e4dd43456954d45d3c",
"testharness"
],
+ "resource-timing/resource_timing_buffer_full_eventually.html": [
+ "5c0a85e6e61a11fca1682b30b6b68f317f9c343e",
+ "testharness"
+ ],
"resource-timing/resource_timing_buffer_full_when_populate_entries.html": [
"af0727706a4160a49aabe131b2f3a4bbca8268e0",
"testharness"
@@ -602312,7 +608743,7 @@
"testharness"
],
"service-workers/service-worker/import-scripts-updated-flag.https.html": [
- "e902940bec870cf548c576b5fd06d2e71fd3f97a",
+ "16cfa33f95de96bc0a2bc8b1102127f0e4922bd6",
"testharness"
],
"service-workers/service-worker/indexeddb.https.html": [
@@ -603160,7 +609591,7 @@
"support"
],
"service-workers/service-worker/resources/import-scripts-updated-flag-worker.js": [
- "b83d48b7ed268293b4788e36bcd7293b1b15e751",
+ "979fca5a705f9794b898e2b3c2c75e7133487ee4",
"support"
],
"service-workers/service-worker/resources/import-scripts-version.py": [
@@ -608699,12 +615130,8 @@
"eae596140c284a25bfe482676c2762729d00b7ee",
"support"
],
- "touch-events/create-touch-touchlist.html": [
- "4872b365fc9e704fc873b411dd0ab60a509531ab",
- "testharness"
- ],
"touch-events/historical.html": [
- "0ccfb39ef6b094dadc6e6ac91de937b5180b2c84",
+ "2a748b6f1b66874fa613f3188125a04c95587976",
"testharness"
],
"touch-events/multi-touch-interactions-manual.html": [
@@ -609344,7 +615771,7 @@
"support"
],
"url/README.md": [
- "17ffb158bda35ef8b55f8f7f5f084df2e0651bfc",
+ "37bbc0fb70e865c45ff369a434de1a4a0a2bbc3e",
"support"
],
"url/a-element-origin-xhtml.xhtml": [
@@ -610820,11 +617247,11 @@
"support"
],
"web-animations/animation-model/animation-types/accumulation-per-property.html": [
- "b26f3961d1913de731906ff0eed9a8548df7bbb2",
+ "40be406294368fc2eccb9a4e525c1f2bb40a3683",
"testharness"
],
"web-animations/animation-model/animation-types/addition-per-property.html": [
- "c16ee3be3338bd5831ff3eab455cbf6943aa8d5b",
+ "0077ef18e19f57f2f6b1b312079a9c8d03bd1714",
"testharness"
],
"web-animations/animation-model/animation-types/discrete.html": [
@@ -610832,11 +617259,11 @@
"testharness"
],
"web-animations/animation-model/animation-types/interpolation-per-property.html": [
- "2bcb2919b3034042d8a61d7af5de099a42386451",
+ "ab09cd8b77d05a1036f9976c3f0e92a6d9e183f3",
"testharness"
],
"web-animations/animation-model/animation-types/property-list.js": [
- "3d3b60b27f20c298ccb7a3abb628054817f2b079",
+ "9416f470f1ac1d320bb4d46461938e85946439e2",
"support"
],
"web-animations/animation-model/animation-types/property-types.js": [
@@ -611144,7 +617571,7 @@
"testharness"
],
"web-nfc/nfc_push.https.html": [
- "ada53723b88641d04566f76f7af366f45ec783e9",
+ "6db968d910771fe1f4bcc1378eb45d0568c89071",
"testharness"
],
"web-nfc/nfc_push_ArrayBuffer-manual.https.html": [
@@ -613328,7 +619755,7 @@
"testharness"
],
"webrtc/RTCPeerConnection-helper.js": [
- "d579dd68118d72c06455d8ccdbeb666f8f39c58a",
+ "40f17015da70851164337b2a8b1c020a95b95679",
"support"
],
"webrtc/RTCPeerConnection-iceConnectionState.html": [
@@ -613408,7 +619835,7 @@
"testharness"
],
"webrtc/RTCPeerConnection-setRemoteDescription.html": [
- "dc96d96b1bd10da63021adbd2a48b2f4fb35d31f",
+ "cfcda3a660de85ce376e423aa122d8bca1e36413",
"testharness"
],
"webrtc/RTCPeerConnection-track-stats.https.html": [
@@ -618507,6 +624934,10 @@
"6bffa3be83d81e2faa93119e710e4fee93fb855e",
"testharness"
],
+ "workers/modules/dedicated-worker-import-csp.html": [
+ "e889866185addcccf72828df7e75cec387cffab5",
+ "testharness"
+ ],
"workers/modules/dedicated-worker-import-failure.html": [
"63b2320a3ecf6133a3525574bf5a1d185d1f3aa7",
"testharness"
@@ -618520,7 +624951,7 @@
"testharness"
],
"workers/modules/dedicated-worker-options-credentials.html": [
- "1d6a1629f81d26efcd05bf1c7d40011609238f4f",
+ "f182ac364e933ce744b18c0ca6e03ae975a883a3",
"testharness"
],
"workers/modules/dedicated-worker-options-credentials.html.headers": [
@@ -618543,6 +624974,10 @@
"9d64de6e63d110e6eff89a124e94cdec9d1802c2",
"support"
],
+ "workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [
+ "bb2d9e0c4c641451640987cecb2f28eff3f8b518",
+ "support"
+ ],
"workers/modules/resources/dynamic-import-worker.js": [
"9db02105e0ee1300518ca70259d4a93671062219",
"support"
@@ -618563,6 +624998,10 @@
"fab13482dce29d3150f4eb06b1375c2610ab07f3",
"support"
],
+ "workers/modules/resources/export-on-load-script.js.headers": [
+ "90d51a5e46cc58404dd5ec1e9e4e10934a6c0707",
+ "support"
+ ],
"workers/modules/resources/export-on-static-import-script.js": [
"fccc8ed2855b857d435d71382ed056f94be6e69d",
"support"
@@ -618583,6 +625022,10 @@
"7a6cdac13e91d27348e63310fc53443948a51aa6",
"support"
],
+ "workers/modules/resources/new-worker-window.html": [
+ "46ae6f9fe4975ca75c0d6534710238e6140aaa4a",
+ "support"
+ ],
"workers/modules/resources/post-message-on-load-worker.js": [
"c67a79ade775435a67e5999d17e7cdda450c8e50",
"support"
@@ -618595,6 +625038,10 @@
"e8e1f0aedcc780aac742af01387dd151b10104bc",
"support"
],
+ "workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [
+ "2f0657e4a67fb1e5e5c6c8bb81fcc084a846ad71",
+ "support"
+ ],
"workers/modules/resources/static-import-worker.js": [
"4ccc3d3a7522527a5e62ec1adeb963220cfcd43c",
"support"
diff --git a/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini b/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini
new file mode 100644
index 00000000000..d0b39d4e03b
--- /dev/null
+++ b/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini
@@ -0,0 +1,2 @@
+[set-animation-play-state-to-paused-002.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini
new file mode 100644
index 00000000000..26435e28b09
--- /dev/null
+++ b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini
@@ -0,0 +1,2 @@
+[vh_not_refreshing_on_chrome.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
index 66ecfdda227..e72e5bd6ddf 100644
--- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
+++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
@@ -1,3 +1,11 @@
[single-byte-decoder.html]
type: testharness
disabled: iframe thread issue 5247
+
+[single-byte-decoder.html?document]
+ expected: CRASH
+
+[single-byte-decoder.html?XMLHttpRequest]
+ expected: CRASH
+
+[single-byte-decoder.html?TextDecoder]
diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/hidden-attr.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/hidden-attr.html.ini
new file mode 100644
index 00000000000..97739eea68e
--- /dev/null
+++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/hidden-attr.html.ini
@@ -0,0 +1,4 @@
+[hidden-attr.html]
+ [UA style for hidden attribute on table elements]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html.ini
deleted file mode 100644
index 4e889b4e220..00000000000
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[detach-frame-on-src-change.html]
- [\n <embed>'s browsing context is discarded on 'src' attribute change.\n ]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini
index b17c9667a66..112399ba1de 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini
@@ -3,3 +3,6 @@
[Check that sandboxed iframe can perform navigation on the top frame\n when allow-top-navigation is set]
expected: FAIL
+ [Frames with `allow-top-navigation` should be able to navigate the top frame.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini
index f5edfc06313..438eaaa18bd 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini
@@ -3,3 +3,6 @@
[Check that sandboxed iframe cannot perform navigation on the top\n frame when allow-top-navigation is not set]
expected: FAIL
+ [Frames without `allow-top-navigation` should not be able to navigate the top frame.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini
index 2defbd51c27..fa79043795f 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini
@@ -3,3 +3,6 @@
[Check that sandboxed iframe can perform navigation on the top frame\n when allow-top-navigation is set (even when\n allow-top-navigation-by-user-activation is set)]
expected: FAIL
+ [Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html.ini
deleted file mode 100644
index fb2d065fdd2..00000000000
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[detach-frame-on-data-change.html]
- [\n <object>'s browsing context is discarded on 'data' attribute change.\n ]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini b/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini
deleted file mode 100644
index a1f18edc547..00000000000
--- a/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[create-touch-touchlist.html]
- type: testharness
- [document.createTouchList exists and correctly creates a TouchList from a single Touch]
- expected: FAIL
-
- [document.createTouchList exists and correctly creates a TouchList from two Touch objects]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/touch-events/historical.html.ini b/tests/wpt/metadata/touch-events/historical.html.ini
index 07822f74e3c..d3709baeef7 100644
--- a/tests/wpt/metadata/touch-events/historical.html.ini
+++ b/tests/wpt/metadata/touch-events/historical.html.ini
@@ -14,3 +14,9 @@
[Document::createTouch]
expected: FAIL
+ [TouchList::identifiedTouch]
+ expected: FAIL
+
+ [Document::createTouchList]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/modules/dedicated-worker-import-csp.html.ini b/tests/wpt/metadata/workers/modules/dedicated-worker-import-csp.html.ini
new file mode 100644
index 00000000000..b1f404b57f5
--- /dev/null
+++ b/tests/wpt/metadata/workers/modules/dedicated-worker-import-csp.html.ini
@@ -0,0 +1,4 @@
+[dedicated-worker-import-csp.html]
+ [DedicatedWorker: CSP for ES Modules]
+ expected: FAIL
+
diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini
new file mode 100644
index 00000000000..1e2567027d8
--- /dev/null
+++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini
@@ -0,0 +1,5 @@
+[rapid-resizing.html]
+ expected: TIMEOUT
+ [Overall test]
+ expected: NOTRUN
+
diff --git a/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html b/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html
index 98354275814..b9cab343ffb 100644
--- a/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html
+++ b/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html
@@ -54,8 +54,8 @@ promise_test(async t => {
idl_array.add_idls(cookie_store);
idl_array.add_objects({
- CookieStore: [self.cookieStore],
- CookieChangeEvent: [new CookieChangeEvent('change')],
+ CookieStore: ["self.cookieStore"],
+ CookieChangeEvent: ["new CookieChangeEvent('change')"],
});
idl_array.test();
}, 'Interface test');
diff --git a/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js b/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js
index ba804132ca4..1b28b2895f1 100644
--- a/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js
+++ b/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js
@@ -35,9 +35,9 @@ promise_test(async t => {
idl_array.add_idls(cookie_store);
idl_array.add_objects({
- CookieStore: [self.cookieStore],
+ CookieStore: ["self.cookieStore"],
ExtendableCookieChangeEvent: [
- new ExtendableCookieChangeEvent('cookiechange')],
+ "new ExtendableCookieChangeEvent('cookiechange')"],
});
idl_array.test();
}, 'Interface test');
diff --git a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html
new file mode 100644
index 00000000000..16bcb212c41
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Dynamically set animation-play-state to paused (reference)</title>
+ <style>
+ #container {
+ position: absolute;
+ left: 0;
+ top: 3em;
+ }
+ #coveringRectLinear, #coveringRectSteps {
+ position: absolute;
+ background: lightgreen;
+ width: 40px;
+ height: 70px;
+ left: 80px;
+ transform-origin: 50% 10%;
+ transform: translate(36px, 0) rotate(144deg);
+ }
+ #coveringRectLinear {
+ top: 50px;
+ }
+ #coveringRectSteps {
+ top: 150px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if you see two rotated green rectangles and no red.</p>
+ <div id="container">
+ <div id="coveringRectLinear"></div>
+ <div id="coveringRectSteps"></div>
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html
new file mode 100644
index 00000000000..210d0274b85
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <meta charset="utf-8">
+ <title>Dynamically set animation-play-state to paused</title>
+ <link rel="author" title="Igalia S.L." href="https://www.igalia.com/">
+ <link rel="help" href="https://drafts.csswg.org/css-animations-1/#animation-play-state">
+ <meta name="assert" content="Visually check that complex animations stop
+ when animation-play-state is set to paused">
+ <link rel="match" href="set-animation-play-state-to-paused-002-ref.html">
+ <style>
+ #container {
+ position: absolute;
+ left: 0;
+ top: 3em;
+ }
+ #lineLinear, #lineSteps {
+ position: absolute;
+ background: red;
+ width: 10px;
+ height: 50px;
+ left: 95px;
+ transform-origin: 50% 0%;
+ }
+ #coveringRectLinear, #coveringRectSteps {
+ position: absolute;
+ background: lightgreen;
+ width: 40px;
+ height: 70px;
+ left: 80px;
+ transform-origin: 50% 10%;
+ transform: translate(36px, 0) rotate(144deg);
+ }
+ #coveringRectLinear, #lineLinear {
+ top: 50px;
+ }
+ #coveringRectSteps, #lineSteps {
+ top: 150px;
+ }
+ #lineLinear {
+ animation: rotate 2s linear;
+ }
+ #lineSteps {
+ animation: rotate 2s steps(360, end);
+ }
+ .pause {
+ opacity: 0.6;
+ animation-play-state: paused !important;
+ }
+ @keyframes rotate
+ {
+ 100% {
+ transform: translate(90px, 0) rotate(360deg);
+ }
+ }
+ </style>
+ <script>
+ var start = null;
+ var animationDuration = 2000;
+ var coveringRectAngle = 144;
+ var rectFinalAngle = 360;
+ function step(timestamp) {
+ if (!start) start = timestamp;
+ var progress = timestamp - start;
+
+ // Pause the animations when the squares pass under the covering rect.
+ var targetProgress = animationDuration * coveringRectAngle / rectFinalAngle;
+ if (progress >= targetProgress) {
+ document.getElementById("lineLinear").classList.add("pause");
+ document.getElementById("lineSteps").classList.add("pause");
+ }
+
+ // Wait a bit so that the squares pass the covering rect if the
+ // animation fails to be paused.
+ var delta = 200;
+ if (progress < targetProgress + delta)
+ window.requestAnimationFrame(step)
+ else
+ document.documentElement.classList.remove("reftest-wait");
+ }
+ function runTest() {
+ window.requestAnimationFrame(step);
+ }
+ </script>
+ </head>
+ <body onload="runTest()">
+ <p>This test passes if you see two rotated green rectangles and no red.</p>
+ <div id="container">
+ <div id="lineLinear"></div>
+ <div id="coveringRectLinear"></div>
+ <div id="lineSteps"></div>
+ <div id="coveringRectSteps"></div>
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html
index 2621cb669b7..8a6d8d458d2 100644
--- a/tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html
+++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html
@@ -22,8 +22,8 @@
test(function() {
assert_equals(cs.getPropertyValue("background-image"),
- "url(support/60x60-green.png)", "background specified value for background-image");
- }, "background_specified_image");
+ 'url("' + new URL("support/60x60-green.png", window.location.href).href + '")');
+ }, "Computed value for background-image after setting background shorthand");
test(function() {
assert_equals(cs.getPropertyValue("background-position"),
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-006.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-006.html
new file mode 100644
index 00000000000..dc1773efac5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-006.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Size containment on table-cell</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
+<link rel="match" href="reference/contain-size-001-ref.html">
+<meta name=assert content="Size containment doesn't apply to table-cell elements.">
+<style>
+div {
+ display: table-cell;
+ contain: size;
+ overflow: hidden;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.</p>
+<div>PASS</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-007.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-007.html
new file mode 100644
index 00000000000..9cf6d91e8f6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-007.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Size containment on table-row-group</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
+<link rel="match" href="reference/contain-size-001-ref.html">
+<meta name=assert content="Size containment doesn't apply to table-row-group elements.">
+<style>
+div {
+ display: table-row-group;
+ contain: size;
+ overflow: hidden;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.</p>
+<div>PASS</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-008.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-008.html
new file mode 100644
index 00000000000..07ba0e2c897
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-008.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Size containment on table-header-group</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
+<link rel="match" href="reference/contain-size-001-ref.html">
+<meta name=assert content="Size containment doesn't apply to table-header-group elements.">
+<style>
+div {
+ display: table-header-group;
+ contain: size;
+ overflow: hidden;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.</p>
+<div>PASS</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-009.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-009.html
new file mode 100644
index 00000000000..a3ca43c2f8d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-009.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Size containment on table-footer-group</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
+<link rel="match" href="reference/contain-size-001-ref.html">
+<meta name=assert content="Size containment doesn't apply to table-footer-group elements.">
+<style>
+div {
+ display: table-footer-group;
+ contain: size;
+ overflow: hidden;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.</p>
+<div>PASS</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-010.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-010.html
new file mode 100644
index 00000000000..a28110d0808
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-010.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Size containment on table-row</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
+<link rel="match" href="reference/contain-size-001-ref.html">
+<meta name=assert content="Size containment doesn't apply to table-row elements.">
+<style>
+div {
+ display: table-row;
+ contain: size;
+ overflow: hidden;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.</p>
+<div>PASS</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-011.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-011.html
new file mode 100644
index 00000000000..0d8e3670a03
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-011.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Size containment on table-caption</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
+<link rel="match" href="reference/contain-paint-014-ref.html">
+<meta name=assert content="Size containment does apply to table-caption elements.">
+<style>
+div {
+ display: table-caption;
+ contain: size;
+ overflow: hidden;
+}
+</style>
+
+<p>This test passes if you can NOT see the word FAIL below.</p>
+<div>FAIL</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-012.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-012.html
new file mode 100644
index 00000000000..af56444f987
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-012.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Size containment on table</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
+<link rel="match" href="reference/contain-paint-014-ref.html">
+<meta name=assert content="Size containment does apply to table elements.">
+<style>
+div {
+ display: table;
+ contain: size;
+ overflow: hidden;
+}
+</style>
+
+<p>This test passes if you can NOT see the word FAIL below.</p>
+<div>FAIL</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html
new file mode 100644
index 00000000000..bce62cfbdda
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on fixed sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.container { position: relative; }
+.grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: 200px 100px / 100px 200px;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.width25 { width: 25px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 25px; }
+.paddingRight { padding-right: 25px; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.grid')">
+
+<pre>Horizontal grid and verticalRL item</pre>
+
+<div class="grid width300 alignItemsBaseline">
+ <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 height25"></div>
+</div>
+
+<pre>Horizontal grid and verticalLR item</pre>
+
+<div class="grid width300 alignItemsBaseline">
+ <div class="firstRowFirstColumn verticalLR" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 height25"></div>
+</div>
+
+<pre>VerticalLR grid and Horizontal item</pre>
+
+<div class="grid alignItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn horizontalTB" data-offset-x="35" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
+
+<pre>VerticalRL grid and Horizontal item</pre>
+
+<div class="grid alignItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn horizontalTB" data-offset-x="100" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="40" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
+
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html
new file mode 100644
index 00000000000..d5757ffb0ee
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on fixed sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: 200px 100px / 100px 200px;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.width25 { width: 25px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 20px; }
+.paddingRight { padding-right: 20px; }
+
+.fixedHeight { height: 125px; }
+.fixedWidth { width: 125px; }
+
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.grid')">
+
+<pre>Horizontal grid and item with fixed height</pre>
+
+<div class="grid width300 alignItemsBaseline">
+ <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div>
+ <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 height25"></div>
+</div>
+
+<pre>VerticalLR grid and item with fixed width</pre>
+
+<div class="grid alignItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
+
+<pre>VerticalRL grid and item with fixed width</pre>
+
+<div class="grid alignItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="175" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="115" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html
new file mode 100644
index 00000000000..22e03201b38
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on fixed sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Empty grid items with relative size should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: 200px 100px / 100px 200px;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.height75 { height: 75px; }
+.width25 { width: 25px; }
+.width75 { width: 75px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 20px; }
+.paddingRight { padding-right: 20px; }
+
+.relativeHeight { height: 50%; }
+.relativeWidth { width: 50%; }
+
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.grid')">
+
+<pre>Horizontal grid and item with relative height</pre>
+
+<div class="grid width300 alignItemsBaseline">
+ <div class="firstRowFirstColumn relativeHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="60" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 height25"></div>
+</div>
+
+<pre>VerticalLR grid and item with relative width</pre>
+
+<div class="grid alignItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn relativeWidth" data-offset-x="30" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
+
+<pre>VerticalRL grid and item with rlative width</pre>
+
+<div class="grid alignItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn relativeWidth" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="140" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
+
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html
new file mode 100644
index 00000000000..3630eee3755
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on content-sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline.">
+<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: auto auto / 100px 200px;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.width25 { width: 25px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 20px; }
+.paddingRight { padding-right: 20px; }
+
+.fixedHeight { height: 125px; }
+.fixedWidth { width: 125px; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.grid')">
+
+<pre>Horizontal grid and item with fixed height</pre>
+
+<div class="grid width300 alignItemsBaseline">
+ <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div>
+ <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 height25"></div>
+</div>
+
+<pre>VerticalLR grid and item with fixed width</pre>
+
+<div class="grid alignItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
+
+<pre>VerticalRL grid and item with fixed width</pre>
+
+<div class="grid alignItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="85" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="25" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowAutoColumnSpanning2 width25"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html
new file mode 100644
index 00000000000..e5a68498fc4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on fixed sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.container { position: relative; }
+.grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: 100px 200px / 200px 100px;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.width25 { width: 25px; }
+.width200 { width: 200px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 25px; }
+.paddingRight { padding-right: 25px; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.grid')">
+
+<pre>Horizontal grid and verticalRL item</pre>
+
+<div class="grid width300 justifyItemsBaseline">
+ <div class="firstRowFirstColumn" data-offset-x="60" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>Horizontal grid and verticalLR item</pre>
+
+<div class="grid width300 justifyItemsBaseline">
+ <div class="firstRowFirstColumn" data-offset-x="35" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>VerticalLR grid and Horizontal item</pre>
+
+<div class="grid justifyItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+<pre>VerticalLR grid and Horizontal item</pre>
+
+<div class="grid justifyItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html
new file mode 100644
index 00000000000..c43b8563f48
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on fixed sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.container { position: relative; }
+.grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: 100px 200px / 200px 100px;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.width25 { width: 25px; }
+.width200 { width: 200px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 20px; }
+.paddingRight { padding-right: 20px; }
+
+.fixedHeight { height: 125px; }
+.fixedWidth { width: 125px; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.grid')">
+
+<pre>Horizontal grid and verticalLR item with fixed width</pre>
+
+<div class="grid width300 justifyItemsBaseline">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>Horizontal grid and verticalRL item with fixed width</pre>
+
+<div class="grid width300 justifyItemsBaseline">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="60" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>VerticalLR grid and item with fixed height</pre>
+
+<div class="grid justifyItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+<pre>VerticalRL grid and item with fixed width</pre>
+
+<div class="grid justifyItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn fixedHeight" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html
new file mode 100644
index 00000000000..b9c60ff7fbe
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on fixed sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Empty grid items with relative size should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.container { position: relative; }
+.grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: 100px 200px / 200px 100px;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.width25 { width: 25px; }
+.width200 { width: 200px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 20px; }
+.paddingRight { padding-right: 20px; }
+
+.relativeHeight { height: 50%; }
+.relativeWidth { width: 50%; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.grid')">
+
+<pre>Horizontal grid and verticalLR item with relative width</pre>
+
+<div class="grid width300 justifyItemsBaseline">
+ <div class="firstRowFirstColumn relativeWidth" data-offset-x="30" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>Horizontal grid and verticalRL item with relative width</pre>
+
+<div class="grid width300 justifyItemsBaseline">
+ <div class="firstRowFirstColumn relativeWidth" data-offset-x="60" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>VerticalLR grid and item with relative height</pre>
+
+<div class="grid justifyItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn relativeHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="60" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+<pre>VerticalRL grid and item with relative height</pre>
+
+<div class="grid justifyItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn relativeHeight" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="60" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html
new file mode 100644
index 00000000000..d1f3959ed78
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on content-sized grids and synthesized baselines</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline.">
+<style>
+.container { position: relative; }
+.inline-grid {
+ position: relative;
+ text-orientation: sideways;
+ grid: 100px 200px / auto auto;
+ font-family: Ahem;
+}
+.bigFont { font-size: 50px; }
+.height25 { height: 25px; }
+.width25 { width: 25px; }
+.width200 { width: 200px; }
+.width300 { width: 300px; }
+
+.paddingLeft { padding-left: 20px; }
+.paddingRight { padding-right: 20px; }
+
+.fixedHeight { height: 125px; }
+.fixedWidth { width: 125px; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.inline-grid')">
+
+<pre>Horizontal grid and verticalLR item with relative width</pre>
+
+<div class="inline-grid justifyItemsBaseline" data-expected-width="180" data-expected-height="300">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>Horizontal grid and verticalRL item with fixed width</pre>
+
+<div class="inline-grid justifyItemsBaseline" data-expected-width="210" data-expected-height="300">
+ <div class="firstRowFirstColumn fixedWidth" data-offset-x="60" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn width25"></div>
+</div>
+
+<pre>VerticalLR grid and item with fixed height</pre>
+
+<div class="inline-grid justifyItemsBaseline verticalLR">
+ <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+<pre>VerticalRL grid and item with fixed height</pre>
+
+<div class="inline-grid justifyItemsBaseline verticalRL">
+ <div class="firstRowFirstColumn fixedHeight" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div>
+ <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div>
+ <div class="autoRowSpanning2AutoColumn height25"></div>
+</div>
+
+
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html
new file mode 100644
index 00000000000..b35b16d648d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment and sizing cyclic dependency</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Grid items with relative size in the inline or block axis and an intrinsically-sized column or row respectively, don't participate in baseline alignment in the, row-like or column-like respectively, shared alignment context.">
+<style>
+.inline-grid {
+ position: relative;
+ border: solid;
+ text-orientation: sideways;
+ font-family: Ahem;
+}
+
+.columns { grid-template-columns: 100px 100px; }
+.rows { grid-template-rows: 100px 100px; }
+
+.min-content-columns { grid-auto-columns: min-content; }
+.max-content-columns { grid-auto-columns: max-content; }
+.fit-content-columns { grid-auto-columns: fit-content; }
+.flex-columns { grid-auto-columns: 1fr; }
+.min-content-rows { grid-auto-rows: min-content; }
+.max-content-rows { grid-auto-rows: max-content; }
+.fit-content-rows { grid-auto-rows: fit-content; }
+.flex-rows { grid-auto-rows: 1fr; }
+
+.height25 { height: 25px; }
+.height50 { height: 50px; }
+.height200 { height: 200px; }
+.width25 { width: 25px; }
+.width50 { width: 50px; }
+.width200 { width: 200px; }
+
+.height200Percent { height: 200%; }
+.width200Percent { width: 200%; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.inline-grid')">
+
+<pre>auto-sized rows - items with relative height</pre>
+
+<div class="inline-grid alignItemsBaseline columns">
+ <div class="firstRowFirstColumn height50" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50"></div>
+ <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="50" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>min-content-sized rows - items with relative height</pre>
+
+<div class="inline-grid alignItemsBaseline columns min-content-rows">
+ <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>max-content-sized rows - items with relative height</pre>
+
+<div class="inline-grid alignItemsBaseline columns max-content-rows">
+ <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>fit-content-sized rows - items with relative height</pre>
+
+<div class="inline-grid alignItemsBaseline columns fit-content-rows">
+ <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>flexible-sized rows - items with relative height</pre>
+
+<div class="inline-grid alignItemsBaseline columns flex-rows">
+ <div class="firstRowFirstColumn height50" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50"></div>
+ <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="50" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>auto-sized columns - items with relative width</pre>
+
+<div class="inline-grid justifyItemsBaseline rows">
+ <div class="firstRowFirstColumn verticalRL width50" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="100" data-expected-height="100"></div>
+ <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="50" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>min-content-sized columns - items with relative width</pre>
+
+<div class="inline-grid justifyItemsBaseline rows min-content-columns">
+ <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div>
+ <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>max-content-sized columns - items with relative width</pre>
+
+<div class="inline-grid justifyItemsBaseline rows max-content-columns">
+ <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div>
+ <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>fit-content-sized columns - items with relative width</pre>
+
+<div class="inline-grid justifyItemsBaseline rows fit-content-columns">
+ <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div>
+ <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>flexible-sized columns - items with relative width</pre>
+
+<div class="inline-grid justifyItemsBaseline rows flex-columns">
+ <div class="firstRowFirstColumn verticalRL width50" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
+ <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="100" data-expected-height="100"></div>
+ <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="50" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html
new file mode 100644
index 00000000000..4d0f506c7b6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Self-Baseline alignment and sizing cyclic dependency</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
+<link rel="stylesheet" href="../../support/grid.css">
+<link rel="stylesheet" href="../../support/alignment.css">
+<meta name="assert" content="Grid items orthogonal to the Baseline Context along the inline or block axis and an intrinsically-sized column or row respectively, don't participate in baseline alignment in the, row-like or column-like respectively, shared alignment context.">
+<style>
+.inline-grid {
+ position: relative;
+ border: solid;
+ text-orientation: sideways;
+ font-family: Ahem;
+}
+
+.columns { grid-template-columns: 100px 100px; }
+.rows { grid-template-rows: 100px 100px; }
+
+.min-content-columns { grid-auto-columns: min-content; }
+.max-content-columns { grid-auto-columns: max-content; }
+.fit-content-columns { grid-auto-columns: fit-content; }
+.flex-columns { grid-auto-columns: 1fr; }
+.min-content-rows { grid-auto-rows: min-content; }
+.max-content-rows { grid-auto-rows: max-content; }
+.fit-content-rows { grid-auto-rows: fit-content; }
+.flex-rows { grid-auto-rows: 1fr; }
+
+.height25 { height: 25px; }
+.height50 { height: 50px; }
+.height200 { height: 200px; }
+.width25 { width: 25px; }
+.width50 { width: 50px; }
+.width200 { width: 200px; }
+
+.bigFont { font-size: 50px; }
+.paddingLeft { padding-left: 25px; }
+.paddingBottom { padding-bottom: 25px; }
+.paddingRight { padding-right: 25px; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.inline-grid')">
+
+<pre>auto-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre>
+
+<div class="inline-grid alignItemsBaseline columns height200">
+ <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div>
+ <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="175">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="175" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>min-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre>
+
+<div class="inline-grid alignItemsBaseline columns min-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div>
+ <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="75">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="75" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>max-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre>
+
+<div class="inline-grid alignItemsBaseline columns max-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div>
+ <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="416">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="416" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>fit-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre>
+
+<div class="inline-grid alignItemsBaseline columns fit-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div>
+ <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="416">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="416" data-expected-width="200" data-expected-height="25"></div>
+</div>
+
+<pre>auto-sized columns - horizontal grid item - row-axis baseline</pre>
+
+<div class="inline-grid justifyItemsBaseline rows width200">
+ <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="175" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="firstRowSpanning2AutoColumn width25" data-offset-x="175" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>min-content-sized columns - horizontal grid item - row-axis baseline</pre>
+
+<div class="inline-grid justifyItemsBaseline rows min-content-columns">
+ <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="firstRowSpanning2AutoColumn width25" data-offset-x="75" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>max-content-sized columns - horizontal grid item - row-axis baseline</pre>
+
+<div class="inline-grid justifyItemsBaseline rows max-content-columns">
+ <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="firstRowSpanning2AutoColumn width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>fit-content-sized columns - horizontal grid item - row-axis baseline</pre>
+
+<div class="inline-grid justifyItemsBaseline rows fit-content-columns">
+ <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="firstRowSpanning2AutoColumn width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>auto-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalLR alignItemsBaseline columns width200">
+ <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="175" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="175" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>min-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalLR alignItemsBaseline columns min-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="75" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>max-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalLR alignItemsBaseline columns max-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>fit-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalLR alignItemsBaseline columns fit-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>auto-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalRL alignItemsBaseline columns width200">
+ <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="125" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="175" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>min-content-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalRL alignItemsBaseline columns min-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="25" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>max-content-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalRL alignItemsBaseline columns max-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="366" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
+
+<pre>fit-content-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre>
+
+<div class="inline-grid verticalRL alignItemsBaseline columns fit-content-rows">
+ <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="366" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div>
+ <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div>
+ <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-function-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-function-failure.https.html
new file mode 100644
index 00000000000..394f68c6141
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-function-failure.https.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-data">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that a function can't be passed to a child layout." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+}
+
+@supports (display: layout(parent)) {
+ .test {
+ display: layout(parent);
+ background: green;
+ }
+
+ .child {
+ display: layout(child);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script id="code" type="text/worklet">
+registerLayout('parent', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout([child], edges, constraints, styleMap) {
+ let childFragment = null;
+
+ try {
+ childFragment = yield child.layoutNextFragment({
+ data: { fn: function() {} }
+ });
+ } catch(e) {
+ // Success! The structured cloning algorithm should have thrown an error.
+ childFragment = yield child.layoutNextFragment({});
+ return {autoBlockSize: 100, childFragments: [childFragment]};
+ }
+
+ return {autoBlockSize: 0, childFragments: [childFragment]};
+ }
+});
+
+registerLayout('child', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout() {
+ return {autoBlockSize: 0};
+ }
+});
+</script>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-sab-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-sab-failure.https.html
new file mode 100644
index 00000000000..eb652d9a552
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-sab-failure.https.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-data">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that a SharedArrayBuffer can't be passed to a child layout." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+}
+
+@supports (display: layout(parent)) {
+ .test {
+ display: layout(parent);
+ background: green;
+ }
+
+ .child {
+ display: layout(child);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script id="code" type="text/worklet">
+registerLayout('parent', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout([child], edges, constraints, styleMap) {
+ let childFragment = null;
+
+ try {
+ // We need SABs to be enabled to properly run this test.
+ if (typeof SharedArrayBuffer !== 'undefined') {
+ childFragment = yield child.layoutNextFragment({
+ data: { sab: new SharedArrayBuffer(4) }
+ });
+ } else {
+ throw Error();
+ }
+ } catch(e) {
+ // Success! The structured cloning algorithm should have thrown an error.
+ childFragment = yield child.layoutNextFragment({});
+ return {autoBlockSize: 100, childFragments: [childFragment]};
+ }
+
+ return {autoBlockSize: 0, childFragments: [childFragment]};
+ }
+});
+
+registerLayout('child', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout() {
+ return {autoBlockSize: 0};
+ }
+});
+</script>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data.https.html
new file mode 100644
index 00000000000..b7b6964acb2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data.https.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-data">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that passing data to a child layout works correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+}
+
+@supports (display: layout(parent)) {
+ .test {
+ display: layout(parent);
+ background: green;
+ }
+
+ .child {
+ display: layout(child);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script id="code" type="text/worklet">
+const DATA = {
+ str: 'hello',
+ num: 42,
+ obj: {str2: 'world'},
+};
+
+registerLayout('parent', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout([child], edges, constraints, styleMap) {
+
+ const childFragment = yield child.layoutNextFragment({data: DATA});
+
+ // If the child's block-size is 100 the structured cloning worked.
+ if (childFragment.blockSize === 100) {
+ return {autoBlockSize: 100, childFragments: [childFragment]};
+ }
+
+ return {autoBlockSize: 0, childFragments: [childFragment]};
+ }
+});
+
+registerLayout('child', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout(children, edges, constraints, styleMap) {
+ // Use JSON.stringify to make sure the structured cloning worked.
+ if (constraints.data !== DATA &&
+ JSON.stringify(constraints.data) === JSON.stringify(DATA)) {
+ return {autoBlockSize: 100};
+ }
+
+ return {autoBlockSize: 0};
+ }
+});
+</script>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html
new file mode 100644
index 00000000000..4a376d7ae24
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ position: relative;
+ width: 120px;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ background: red;
+ position: absolute;
+ left: 0px;
+ right: 20px;
+ --expected-block-size: 100;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html
new file mode 100644
index 00000000000..7a695e0d8dc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ position: relative;
+}
+
+.test {
+ background: red;
+ position: absolute;
+ --expected-block-size: null;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html
new file mode 100644
index 00000000000..7cbee8295ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ position: relative;
+ height: 120px;
+}
+
+.test {
+ background: red;
+ position: absolute;
+ top: 0px;
+ bottom: 20px;
+ --expected-block-size: 100;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html
new file mode 100644
index 00000000000..6f36abe73bc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+.test {
+ writing-mode: vertical-lr;
+ background: red;
+ --expected-block-size: null;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html
new file mode 100644
index 00000000000..4fd6441c0aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+.test {
+ background: red;
+ --expected-block-size: null;
+ width: 100px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html
new file mode 100644
index 00000000000..accdd7c8b00
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+.test {
+ background: red;
+ --expected-block-size: 30;
+ width: 100px;
+ height: 60px;
+ max-height: 30px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html
new file mode 100644
index 00000000000..845683dc6d5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+.test {
+ background: red;
+ --expected-block-size: 70;
+ width: 100px;
+ height: 60px;
+ min-height: 70px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html
new file mode 100644
index 00000000000..a319129a27d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+.test {
+ writing-mode: vertical-rl;
+ background: red;
+ --expected-block-size: 100;
+ width: 100px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html
new file mode 100644
index 00000000000..646a514d18c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+.test {
+ background: red;
+ --expected-block-size: 60;
+ width: 100px;
+ height: 60px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html
new file mode 100644
index 00000000000..bb12d15dbc7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ background: red;
+ --expected-block-size: 100;
+ flex-basis: 100px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html
new file mode 100644
index 00000000000..8435b021c97
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+ flex-direction: column;
+ width: 100px;
+}
+
+.test {
+ background: red;
+ --expected-block-size: 60;
+ flex-basis: 60px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html
new file mode 100644
index 00000000000..68a3c197643
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+ flex-direction: column;
+ width: 100px;
+ height: 60px;
+}
+
+.test {
+ background: red;
+ --expected-block-size: 50;
+ margin-bottom: 10px;
+ flex-grow: 1;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html
new file mode 100644
index 00000000000..a0c416f5338
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+ flex-direction: column;
+ width: 100px;
+}
+
+.test {
+ background: red;
+ --expected-block-size: null;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html
new file mode 100644
index 00000000000..be448da4ec1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+ flex-direction: column;
+ width: 100px;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ background: red;
+ --expected-block-size: 90; /* flex-item should stretch to (100 - 10)px */
+ margin-left: 10px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html
new file mode 100644
index 00000000000..d79445e16e8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+ width: 100px;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ background: red;
+ --expected-block-size: 100;
+ flex-grow: 1;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html
new file mode 100644
index 00000000000..f34a0d88a95
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+}
+
+.test {
+ background: red;
+ --expected-block-size: null;
+ width: 100px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html
new file mode 100644
index 00000000000..ee8e27b38cb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+}
+
+.test {
+ background: red;
+ --expected-block-size: null; /* Percentage which we are resolving height against is indefinite. */
+ width: 100px;
+ height: 50%;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html
new file mode 100644
index 00000000000..bbf358e1129
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+ height: 50px;
+}
+
+.test {
+ background: red;
+ --expected-block-size: 30; /* flex-item should respect the max constraint */
+ max-height: 30px;
+ width: 100px;
+ margin-bottom: 10px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html
new file mode 100644
index 00000000000..1b1e43879f1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: flex;
+ height: 50px;
+}
+
+.test {
+ background: red;
+ --expected-block-size: 40; /* flex-item should stretch to (50 - 10)px */
+ width: 100px;
+ margin-bottom: 10px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html
new file mode 100644
index 00000000000..27b68a09611
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: grid;
+}
+
+.test {
+ background: red;
+ --expected-block-size: null;
+ width: 100px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html
new file mode 100644
index 00000000000..108c90db4f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: grid;
+ grid: 50px / auto-flow;
+}
+
+.test {
+ background: red;
+ --expected-block-size: 30; /* grid-item should respect the max constraint */
+ max-height: 30px;
+ width: 100px;
+ margin-bottom: 10px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html
new file mode 100644
index 00000000000..f93ad5be363
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: grid;
+ grid: 50px / auto-flow;
+}
+
+.test {
+ background: red;
+ --expected-block-size: 40; /* grid-item should stretch to (50 - 10)px */
+ width: 100px;
+ margin-bottom: 10px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html
new file mode 100644
index 00000000000..db82767f782
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ display: grid;
+ grid: auto-flow / 100px;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ background: red;
+ --expected-block-size: 100;
+ width: 100px;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html
new file mode 100644
index 00000000000..94a20387442
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+.test {
+ background: red;
+ --expected-block-size: null; /* Percentage which we are resolving height against is indefinite. */
+ width: 100px;
+ height: 50%;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html
new file mode 100644
index 00000000000..8c7a8c5d3ea
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ width: 200px;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ background: red;
+ --expected-block-size: 100;
+ width: 50%;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html
new file mode 100644
index 00000000000..693553e14e2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+body {
+ height: 200px;
+}
+
+.test {
+ background: red;
+ --expected-block-size: 100;
+ width: 100px;
+ height: 50%;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'});
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html
new file mode 100644
index 00000000000..7601e8b6bb4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
+<style>
+iframe { border: none; width: 200px; height: 200px; }
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+<body>
+<script>
+// For this test we load a quirky iframe with the test file.
+// We can control the auto size of the iframe body element by setting the iframe height.
+const iframe = document.createElement('iframe');
+document.body.appendChild(iframe);
+iframe.addEventListener('load', () => {
+ importWorkletAndTerminateTestAfterAsyncPaint(
+ iframe.contentWindow.CSS.layoutWorklet, {url: 'constraints-fixed-block-size.js'});
+});
+iframe.src = 'support/constraints-fixed-block-size-quirky-body-iframe.html';
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-function-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-function-failure.https.html
new file mode 100644
index 00000000000..5e21be0bfd6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-function-failure.https.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that passing something that can't be serialized to the parent triggers a fallback to block layout." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+}
+
+.child {
+ height: 100px;
+}
+
+@supports (display: layout(fallback-fn)) {
+ .test {
+ display: layout(fallback-fn);
+ background: green;
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script id="code" type="text/worklet">
+registerLayout('fallback-fn', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout(children, edges, constraints, styleMap) {
+ const childFragments = yield children.map(child => child.layoutNextFragment());
+ return {autoBlockSize: 0, childFragments, data: {fn: function() {}}};
+ }
+});
+</script>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-immutable.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-immutable.https.html
new file mode 100644
index 00000000000..cc1875bd61d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-immutable.https.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that LayoutFragment#data is immutable between child layout passes." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+}
+
+@supports (display: layout(parent)) {
+ .test {
+ display: layout(parent);
+ background: green;
+ }
+
+ .child {
+ display: layout(child);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script id="code" type="text/worklet">
+registerLayout('parent', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout([child], edges, constraints, styleMap) {
+
+ const childFragment10 = yield child.layoutNextFragment({fixedInlineSize: 10});
+
+ // First layout data should be "10".
+ if (childFragment10.data.size !== 10) {
+ return {autoBlockSize: 0, childFragments: [childFragment10]};
+ }
+
+ const childFragment20 = yield child.layoutNextFragment({fixedInlineSize: 20});
+
+ // Second layout data should be "20".
+ if (childFragment20.data.size !== 20) {
+ return {autoBlockSize: 0, childFragments: [childFragment10]};
+ }
+
+ // First layout data should still be "10".
+ if (childFragment10.data.size !== 10) {
+ return {autoBlockSize: 0, childFragments: [childFragment10]};
+ }
+
+ return {autoBlockSize: 100, childFragments: [childFragment20]};
+ }
+});
+
+registerLayout('child', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout(children, edges, constraints, styleMap) {
+ return {autoBlockSize: 10, data: {size: constraints.fixedInlineSize}};
+ }
+});
+</script>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-sab-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-sab-failure.https.html
new file mode 100644
index 00000000000..59a9f835728
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-sab-failure.https.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that a SharedArrayBuffer can't be passed to the parent layout." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+}
+
+.child {
+ height: 100px;
+}
+
+@supports (display: layout(fallback-sab)) {
+ .test {
+ display: layout(fallback-sab);
+ background: green;
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script id="code" type="text/worklet">
+registerLayout('fallback-sab', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout(children, edges, constraints, styleMap) {
+ const childFragments = yield children.map(child => child.layoutNextFragment());
+
+ if (typeof SharedArrayBuffer !== 'undefined') {
+ return {autoBlockSize: 0, childFragments, data: {sab: new SharedArrayBuffer(4) }};
+ } else {
+ throw Error();
+ }
+ }
+});
+</script>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data.https.html
new file mode 100644
index 00000000000..589ee9c76fd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data.https.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data">
+<link rel="match" href="green-square-ref.html">
+<meta name="assert" content="This test checks that passing data to a parent layout works correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+}
+
+@supports (display: layout(parent)) {
+ .test {
+ display: layout(parent);
+ background: green;
+ }
+
+ .child {
+ display: layout(child);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child"></div>
+</div>
+
+<script id="code" type="text/worklet">
+const DATA = {
+ str: 'hello',
+ num: 42,
+ obj: {str2: 'world'},
+};
+
+registerLayout('parent', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout([child], edges, constraints, styleMap) {
+
+ const childFragment = yield child.layoutNextFragment();
+
+ // Use JSON.stringify to make sure the structured cloning worked.
+ if (childFragment.data !== DATA &&
+ JSON.stringify(childFragment.data) === JSON.stringify(DATA)) {
+ return {autoBlockSize: 100, childFragments: [childFragment]};
+ }
+
+ return {autoBlockSize: 0, childFragments: [childFragment]};
+ }
+});
+
+registerLayout('child', class {
+ *intrinsicSizes() {}
+ *layout() {}
+ *layout(children, edges, constraints, styleMap) {
+ return {autoBlockSize: 10, data: DATA};
+ }
+});
+</script>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/green-square-ref.html
index 641dda18642..a28e43be4ad 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/green-square-ref.html
@@ -2,7 +2,6 @@
<style>
.result {
background: green;
- margin: 10px;
height: 100px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html
index 73c0bf78d80..26513f4fac7 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that absolute children don't appear in the children array." />
<style>
@@ -9,7 +9,6 @@
--child-expected: ["2"];
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html
index 87d12190cfb..4923f26cf9d 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that boxes created by ::before/::after appear as children." />
<style>
@@ -9,7 +9,6 @@
--child-expected: ["1", "2", "3"];
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html
index 9de556efd86..264fc638d52 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that fixed children don't appear in the children array." />
<style>
@@ -9,7 +9,6 @@
--child-expected: ["2"];
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html
index 0465b1885bf..6e40893e3b3 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that float children appear in the children array." />
<style>
@@ -9,7 +9,6 @@
--child-expected: ["1", "2"];
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html
index 7c5aa2953b4..11f2b88aa1f 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that regular inflow children appear as children." />
<style>
@@ -9,7 +9,6 @@
--child-expected: ["1", "2"];
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html
index e1d65abfa80..811af3f40b2 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that inline children are correctly blockified or wrapped in anonymous boxes." />
<style>
@@ -11,7 +11,6 @@
.wrapper {
background: green;
padding: 0 10px;
- margin: 10px;
width: 80px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html
index 0757f5d2cd7..40513f0acf3 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that text children are correctly blockified." />
<style>
@@ -11,7 +11,6 @@
.wrapper {
background: green;
padding: 0 10px;
- margin: 10px;
width: 80px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html
index e14541b7beb..bfe8a99e7fe 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html
@@ -1,14 +1,13 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
<style>
.test {
writing-mode: horizontal-tb;
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html
index 1b45998d2d8..602536c5814 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html
@@ -1,14 +1,13 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
<style>
.test {
writing-mode: horizontal-tb;
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html
index 63590c9203b..4759c1b69d0 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html
@@ -1,14 +1,13 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
<style>
.test {
writing-mode: vertical-rl;
background: red;
- margin: 10px;
height: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html
index 815f5254d5d..7bfa44db67b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html
@@ -1,14 +1,13 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
<style>
.test {
writing-mode: vertical-rl;
background: red;
- margin: 10px;
height: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html
index cc4448464c3..43dd483b3f9 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html
@@ -1,14 +1,13 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that fixing the block size of children works as expected." />
<style>
.test {
writing-mode: vertical-rl;
background: red;
- margin: 10px;
height: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html
index add1a3d96bf..c714e1ff975 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html
@@ -1,13 +1,12 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedblocksize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that fixing the block size of children works as expected." />
<style>
.test {
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html
index 42e9c563574..ba86d2c184d 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html
@@ -1,14 +1,13 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that fixing the inline size of children works as expected." />
<style>
.test {
writing-mode: vertical-rl;
background: red;
- margin: 10px;
height: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html
index 188e5864c16..a2a422bd611 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html
@@ -1,13 +1,12 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
-<link rel="match" href="layout-child-ref.html">
+<link rel="match" href="green-square-ref.html">
<meta name="assert" content="This test checks that fixing the inline size of children works as expected." />
<style>
.test {
background: red;
- margin: 10px;
width: 100px;
}
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html
new file mode 100644
index 00000000000..da770e6caf1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html
@@ -0,0 +1,21 @@
+<style>
+body {
+ margin: 0;
+ --expected-block-size: 200;
+}
+
+.child {
+ background: green;
+}
+
+@supports (display: layout(test)) {
+ body {
+ display: layout(test);
+ }
+}
+</style>
+
+<!-- In Quirks mode, we should stretch to 100% of the inital containing block. -->
+<body>
+<div class="child"></div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js
new file mode 100644
index 00000000000..50f802f47eb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js
@@ -0,0 +1,22 @@
+registerLayout('test', class {
+ static get inputProperties() {
+ return ['--expected-block-size'];
+ }
+
+ *intrinsicSizes() {}
+ *layout([child], edges, constraints, styleMap) {
+ let childFixedInlineSize = 0;
+ let childFixedBlockSize = 0;
+ if (constraints.fixedBlockSize === JSON.parse(styleMap.get('--expected-block-size'))) {
+ childFixedInlineSize = 100;
+ childFixedBlockSize = 100;
+ }
+
+ const childFragments = [yield child.layoutNextFragment({
+ fixedInlineSize: childFixedInlineSize,
+ fixedBlockSize: childFixedBlockSize,
+ })];
+
+ return {childFragments};
+ }
+});
diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html
index 9dc9d7e50bb..d1641d22d89 100644
--- a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html
+++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html
@@ -37,8 +37,10 @@ test(function() {
assert_equals(computedStyle.getPropertyValue('--color'), 'hello');
}, "CSSOM setters function as expected for unregistered properties");
-CSS.registerProperty({name: '--length', syntax: '<length>', initialValue: '0px'});
-CSS.registerProperty({name: '--color', syntax: '<color>', initialValue: 'white', inherits: true});
+test(function() {
+ CSS.registerProperty({name: '--length', syntax: '<length>', initialValue: '0px'});
+ CSS.registerProperty({name: '--color', syntax: '<color>', initialValue: 'white', inherits: true});
+}, "CSS.registerProperty");
test(function() {
assert_equals(inlineStyle.getPropertyValue('--length'), '5');
diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html
new file mode 100644
index 00000000000..92ae71d83fc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<title>CSS Test Reference</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<style>
+#number::placeholder {
+ color: blue;
+}
+</style>
+<input id="number" type="number" placeholder="Placeholder">
diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number.html b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number.html
new file mode 100644
index 00000000000..a557f1091ec
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number.html
@@ -0,0 +1,11 @@
+<!doctype html>
+<title>CSS Test: ::placeholder applies to input type="number"</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="mismatch" href="placeholder-input-number-notref.html">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#placeholder-pseudo">
+<style>
+#number::placeholder {
+ color: green;
+}
+</style>
+<input id="number" type="number" placeholder="Placeholder">
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html
new file mode 100644
index 00000000000..2c232ed9a50
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Test: left float, url(png), real negative offset image + shape-margin (px)</title>
+ <link rel="author" title="Brad Werth" href="mailto:bwerth@mozilla.com"/>
+ <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shapes-from-image"/>
+ <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property"/>
+ <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property"/>
+ <link rel="match" href="reference/shape-image-006-ref.html"/>
+ <meta name="flags" content="ahem"/>
+ <meta name="assert" content="This test verifies that content wraps around all the image pixels
+ + the shape-margin when shape-outside is given a png file.
+ Additionally, the shape-outside: image element is given a negative
+ left offset relative to its containing block."/>
+ <style type="text/css">
+ body {
+ margin: 0;
+ }
+ .container {
+ left: 10px;
+ font: 50px/1 Ahem;
+ }
+ #test {
+ width: 200px;
+ color: rgb(0,100,0);
+ }
+ #image {
+ float: left;
+ shape-outside: url("support/left-half-rectangle.png");
+ shape-margin: 20px;
+ margin-left: -10px;
+ width: 100px;
+ height: 100px;
+ }
+ .blue {
+ width: 2px;
+ height: 100px;
+ background-color: blue;
+ }
+ .left-line { left: 65px; }
+ .right-line { left: 125px; }
+
+ .failure {
+ left: 70px;
+ width: 50px;
+ height: 100px;
+ background-color: red;
+ z-index: -1;
+ }
+ .container, .blue, .failure {
+ position: absolute;
+ top: 70px;
+ }
+ </style>
+</head>
+<body>
+ <p>
+ The test passes if the green rectangle on the right is completely between the two blue lines.
+ There should be no red.
+ </p>
+ <div id="test" class="container">
+ <div id="image"><img src="support/left-half-rectangle.png" style="margin-left: 10px"/></div>
+ X<br/>X
+ </div>
+ <div class="blue left-line"></div>
+ <div class="blue right-line"></div>
+ <div class="failure"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js b/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js
index 01fb6e7336f..9ca23450c8d 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js
+++ b/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js
@@ -221,8 +221,6 @@ var properties = {
'outline-width': ['length'],
'clip': ['rectangle'],
- // Note: doesn't seem implemented anywhere
- 'crop': ['rectangle'],
'vertical-align': ['length', 'percentage'],
'opacity': ['number[0,1]'],
diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-017.html b/tests/wpt/web-platform-tests/css/css-ui/outline-017.html
index 54155e4b8aa..d3a350d2a8f 100644
--- a/tests/wpt/web-platform-tests/css/css-ui/outline-017.html
+++ b/tests/wpt/web-platform-tests/css/css-ui/outline-017.html
@@ -9,18 +9,18 @@
<style>
@keyframes outline-anim {
from {
- outline: solid 1px rgb(1,0,0);
+ outline: solid 1px rgba(1, 0, 0, 0.5);
outline-offset: 1px;
}
to {
- outline: solid 3px rgb(3,0,0);
+ outline: solid 3px rgba(3, 0, 0, 0.5);
outline-offset: 3px;
}
}
#test {
animation: outline-anim 3s -1.5s paused linear;
- outline: solid 1px rgb(1,0,0);
+ outline: solid 1px rgba(1, 0, 0, 0.5);
outline-offset: 1px;
}
</style>
@@ -29,20 +29,27 @@
<div id=log></div>
<script>
- test(
- function(){
- var test = document.getElementById("test");
- assert_equals(getComputedStyle(test).outlineColor, 'rgb(2, 0, 0)');
- }, "outline-color is animated as a color");
- test(
- function(){
- var test = document.getElementById("test");
- assert_equals(getComputedStyle(test).outlineWidth, '2px');
- }, "outline-width is animated as a length");
- test(
- function(){
- var test = document.getElementById("test");
- assert_equals(getComputedStyle(test).outlineOffset, '2px');
- }, "outline-offset is animated as a length");
+ // outline being a render-only property, its animation can be done off the main thread
+ // checking the values after the first paint is safer, hence requestAnimationFrame
+ setup({explicit_done:true});
+ requestAnimationFrame(function() {
+ // synchronous tests being run during the page's first paint
+ test(
+ function(){
+ var test = document.getElementById("test");
+ assert_equals(getComputedStyle(test).outlineColor, 'rgba(2, 0, 0, 0.5)');
+ }, "outline-color is animated as a color");
+ test(
+ function(){
+ var test = document.getElementById("test");
+ assert_equals(getComputedStyle(test).outlineWidth, '2px');
+ }, "outline-width is animated as a length");
+ test(
+ function(){
+ var test = document.getElementById("test");
+ assert_equals(getComputedStyle(test).outlineOffset, '2px');
+ }, "outline-offset is animated as a length");
+ done();
+ });
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html
index 448a11f141e..ff79144da2a 100644
--- a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html
+++ b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html
@@ -16,28 +16,46 @@
}
}
-#test {
- animation: outline-anim 3s -1.5s paused linear;
+#test1 {
+ animation: outline-anim 3s 0s paused linear;
+ outline: solid 1px black;
+}
+#test2 {
+ animation: outline-anim 3s -1s paused linear;
+ outline: solid 1px black;
+}
+#test3 {
+ animation: outline-anim 3s -2s paused linear;
+ outline: solid 1px black;
+}
+#test4 {
+ animation: outline-anim 3s 0s paused reverse-linear;
outline: solid 1px black;
}
</style>
<body>
- <div id="test"></div>
+ <div id="test1"></div>
+ <div id="test2"></div>
+ <div id="test3"></div>
+ <div id="test4"></div>
<div id=log></div>
<script>
- test(
- function(){
- var test = document.getElementById("test");
-
- test.style.animation = "outline-anim 3s 0s paused linear"
- assert_equals(getComputedStyle(test).outlineStyle, 'solid');
- test.style.animation = "outline-anim 3s -1s paused linear"
- assert_equals(getComputedStyle(test).outlineStyle, 'solid');
- test.style.animation = "outline-anim 3s -2s paused linear"
- assert_equals(getComputedStyle(test).outlineStyle, 'dotted');
- test.style.animation = "outline-anim 3s 0s paused reverse-linear"
- assert_equals(getComputedStyle(test).outlineStyle, 'dotted');
- }, "outline-style is animated as a discrete type");
+ // outline being a render-only property, its animation can be done off the main thread
+ // checking the values after the first paint is safer, hence requestAnimationFrame
+ setup({explicit_done:true});
+ requestAnimationFrame(function() {
+ // synchronous tests being run during the page's first paint
+ test(
+ function(){
+ var tests = document.querySelectorAll("div[id^='test']");
+ assert_equals(getComputedStyle(tests[0]).outlineStyle, 'solid');
+ assert_equals(getComputedStyle(tests[1]).outlineStyle, 'solid');
+ assert_equals(getComputedStyle(tests[2]).outlineStyle, 'dotted');
+ assert_equals(getComputedStyle(tests[3]).outlineStyle, 'dotted');
+ }, "outline-style is animated as a discrete type"
+ );
+ done();
+ });
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/css/support/grid.css b/tests/wpt/web-platform-tests/css/support/grid.css
new file mode 100644
index 00000000000..602e114880a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/support/grid.css
@@ -0,0 +1,277 @@
+.grid {
+ display: grid;
+ background-color: grey;
+}
+
+.inline-grid {
+ display: inline-grid;
+ background-color: grey;
+}
+
+.firstRowFirstColumn {
+ background-color: blue;
+ grid-column: 1;
+ grid-row: 1;
+}
+
+.onlyFirstRowOnlyFirstColumn {
+ background-color: blue;
+ grid-column: 1 / 2;
+ grid-row: 1 / 2;
+}
+
+.firstRowSecondColumn {
+ background-color: lime;
+ grid-column: 2;
+ grid-row: 1;
+}
+
+.onlyFirstRowOnlySecondColumn {
+ background-color: lime;
+ grid-column: 2 / 3;
+ grid-row: 1 / 2;
+}
+
+.secondRowFirstColumn {
+ background-color: purple;
+ grid-column: 1;
+ grid-row: 2;
+}
+
+.onlySecondRowOnlyFirstColumn {
+ background-color: purple;
+ grid-column: 1 / 2;
+ grid-row: 2 / 3;
+}
+
+.secondRowSecondColumn {
+ background-color: orange;
+ grid-column: 2;
+ grid-row: 2;
+}
+
+.onlySecondRowOnlySecondColumn {
+ background-color: orange;
+ grid-column: 2 / 3;
+ grid-row: 2 / 3;
+}
+
+.endSecondRowEndSecondColumn {
+ background-color: orange;
+ grid-column-end: 3;
+ grid-row-end: 3;
+}
+
+.thirdRowSecondColumn {
+ background-color: red;
+ grid-column: 2;
+ grid-row: 3;
+}
+
+.firstRowThirdColumn {
+ background-color: magenta;
+ grid-column: 3;
+ grid-row: 1;
+}
+
+.secondRowThirdColumn {
+ background-color: navy;
+ grid-column: 3;
+ grid-row: 2;
+}
+
+.firstRowFourthColumn {
+ background-color: green;
+ grid-column: 4;
+ grid-row: 1;
+}
+
+.secondRowFourthColumn {
+ background-color: pink;
+ grid-column: 4;
+ grid-row: 2;
+}
+
+.firstAutoRowSecondAutoColumn {
+ grid-row: 1 / auto;
+ grid-column: 2 / auto;
+}
+
+.autoLastRowAutoLastColumn {
+ grid-row: auto / -1;
+ grid-column: auto / -1;
+}
+
+.autoSecondRowAutoFirstColumn {
+ grid-row: auto / 2;
+ grid-column: auto / 1;
+}
+
+.firstRowBothColumn {
+ grid-row: 1;
+ grid-column: 1 / -1;
+}
+
+.secondRowBothColumn {
+ grid-row: 2;
+ grid-column: 1 / -1;
+}
+
+.bothRowFirstColumn {
+ grid-row: 1 / -1;
+ grid-column: 1;
+}
+
+.bothRowSecondColumn {
+ grid-row: 1 / -1;
+ grid-column: 2;
+}
+
+.bothRowBothColumn {
+ grid-row: 1 / -1;
+ grid-column: 1 / -1;
+}
+
+/* Auto column / row. */
+.autoRowAutoColumn {
+ background-color: pink;
+ grid-column: auto;
+ grid-row: auto;
+}
+
+.firstRowAutoColumn {
+ background-color: blue;
+ grid-column: auto;
+ grid-row: 1;
+}
+
+.secondRowAutoColumn {
+ background-color: purple;
+ grid-column: auto;
+ grid-row: 2;
+}
+
+.thirdRowAutoColumn {
+ background-color: navy;
+ grid-column: auto;
+ grid-row: 3;
+}
+
+.autoRowFirstColumn {
+ background-color: lime;
+ grid-column: 1;
+ grid-row: auto;
+}
+
+.autoRowSecondColumn {
+ background-color: orange;
+ grid-column: 2;
+ grid-row: auto;
+}
+
+.autoRowThirdColumn {
+ background-color: magenta;
+ grid-column: 3;
+ grid-row: auto;
+}
+
+.autoRowAutoColumnSpanning2 {
+ background-color: maroon;
+ grid-column: span 2;
+ grid-row: auto;
+}
+
+.autoRowSpanning2AutoColumn {
+ background-color: aqua;
+ grid-column: auto;
+ grid-row: span 2;
+}
+
+.autoRowSpanning2AutoColumnSpanning3 {
+ background-color: olive;
+ grid-column: span 3;
+ grid-row: span 2;
+}
+
+.autoRowSpanning3AutoColumnSpanning2 {
+ background-color: indigo;
+ grid-column: span 2;
+ grid-row: span 3;
+}
+
+.autoRowFirstColumnSpanning2 {
+ background-color: maroon;
+ grid-column: 1 / span 2;
+ grid-row: auto;
+}
+
+.autoRowSecondColumnSpanning2 {
+ background-color: olive;
+ grid-column: 2 / span 2;
+ grid-row: auto;
+}
+
+.firstRowSpanning2AutoColumn {
+ background-color: maroon;
+ grid-column: auto;
+ grid-row: 1 / span 2;
+ height: 100%;
+}
+
+.secondRowSpanning2AutoColumn {
+ background-color: olive;
+ grid-column: auto;
+ grid-row: 2 / span 2;
+ height: 100%;
+}
+
+/* Grid element flow. */
+.gridAutoFlowColumnSparse {
+ grid-auto-flow: column;
+}
+
+.gridAutoFlowColumnDense {
+ grid-auto-flow: column dense;
+}
+
+.gridAutoFlowRowSparse {
+ grid-auto-flow: row;
+}
+
+.gridAutoFlowRowDense {
+ grid-auto-flow: row dense;
+}
+
+/* This rule makes sure the container is smaller than any grid items to avoid distributing any extra logical space to them. */
+.constrainedContainer {
+ width: 10px;
+ height: 10px;
+}
+
+.unconstrainedContainer {
+ width: 1000px;
+ height: 1000px;
+}
+
+.sizedToGridArea {
+ font: 10px/1 Ahem;
+ /* Make us fit our grid area. */
+ width: 100%;
+ height: 100%;
+}
+
+.verticalRL {
+ writing-mode: vertical-rl;
+}
+.verticalLR {
+ writing-mode: vertical-lr;
+}
+.horizontalTB {
+ writing-mode: horizontal-tb;
+}
+.directionRTL {
+ direction: rtl;
+}
+.directionLTR {
+ direction: ltr;
+}
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html
new file mode 100644
index 00000000000..c7553716ab6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com">
+ <style>
+ div {
+ position: relative;
+ width: 100px;
+ }
+ #div1,
+ #div3 {
+ background-color: #cfc;
+ }
+ #div1 {
+ z-index: 5;
+ }
+ #div2 {
+ z-index: 1;
+ background-color: #fdd;
+ height: 100px;
+ top: -20px;
+ }
+ #div2_1 {
+ background-color: #ffc;
+ z-index: 6;
+ top: -10px;
+ }
+ #div2_2 {
+ z-index: 3;
+ position: absolute;
+ top: -15px;
+ width: 40px;
+ height: 100px;
+ background-color: #ddf;
+ }
+ #div3 {
+ z-index: 2;
+ top: -50px;
+ }
+ </style>
+</head>
+<body>
+ <div id="div1">
+ <br/><br/>
+ </div>
+
+ <div id="div2">
+ <div id="div2_1">
+ <br/><br/>
+ </div>
+
+ <div id="div2_2">
+ </div>
+ </div>
+
+ <div id="div3">
+ <br/><br/>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html
new file mode 100644
index 00000000000..71102b6c73a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>CSS Test: 'contain: paint' with stacking contents. Z-index is defined only for siblings and children.</title>
+ <link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com">
+
+ <link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43">
+ <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-paint">
+ <link rel="match" href="contain-paint-stacking-context-001-ref.html">
+ <style>
+ div {
+ position: relative;
+ width: 100px;
+ }
+ #div1,
+ #div3 {
+ background-color: #cfc;
+ }
+ #div1 {
+ z-index: 5;
+ }
+ #div2 {
+ contain: paint;
+ background-color: #fdd;
+ height: 100px;
+ top: -20px;
+ }
+ #div2_1 {
+ background-color: #ffc;
+ z-index: 6;
+ top: -10px;
+ }
+ #div2_2 {
+ z-index: 3;
+ position: absolute;
+ top: -15px;
+ width: 40px;
+ height: 100px;
+ background-color: #ddf;
+ }
+ #div3 {
+ z-index: 2;
+ top: -50px;
+ }
+ </style>
+</head>
+<body>
+ <div id="div1">
+ <br/><br/>
+ </div>
+
+ <div id="div2">
+ <div id="div2_1">
+ <br/><br/>
+ </div>
+
+ <div id="div2_2">
+ </div>
+ </div>
+
+ <div id="div3">
+ <br/><br/>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html
new file mode 100644
index 00000000000..0c4d3323bf7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>CSS Test: 'will-change: contain' with stacking contents. Z-index is defined only for siblings and children.</title>
+ <link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com">
+
+ <link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43">
+ <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-paint">
+ <link rel="match" href="contain-paint-stacking-context-001-ref.html">
+ <style>
+ div {
+ position: relative;
+ width: 100px;
+ }
+ #div1,
+ #div3 {
+ background-color: #cfc;
+ }
+ #div1 {
+ z-index: 5;
+ }
+ #div2 {
+ will-change: contain;
+ background-color: #fdd;
+ height: 100px;
+ top: -20px;
+ }
+ #div2_1 {
+ background-color: #ffc;
+ z-index: 6;
+ top: -10px;
+ }
+ #div2_2 {
+ z-index: 3;
+ position: absolute;
+ top: -15px;
+ width: 40px;
+ height: 100px;
+ background-color: #ddf;
+ }
+ #div3 {
+ z-index: 2;
+ top: -50px;
+ }
+ </style>
+</head>
+<body>
+ <div id="div1">
+ <br/><br/>
+ </div>
+
+ <div id="div2">
+ <div id="div2_1">
+ <br/><br/>
+ </div>
+
+ <div id="div2_2">
+ </div>
+ </div>
+
+ <div id="div3">
+ <br/><br/>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list
index 44b041364ef..39dd1318e18 100644
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list
@@ -8,3 +8,5 @@
== contain-paint-containing-block-fixed-001.html contain-paint-containing-block-fixed-001-ref.html
== contain-paint-formatting-context-float-001.html contain-paint-formatting-context-float-001-ref.html
== contain-paint-formatting-context-margin-001.html contain-paint-formatting-context-margin-001-ref.html
+== contain-paint-stacking-context-001a.html contain-paint-stacking-context-001-ref.html
+== contain-paint-stacking-context-001b.html contain-paint-stacking-context-001-ref.html
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list
index fbee28923a4..33be87f02cb 100644
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list
@@ -43,14 +43,10 @@
== shape-outside-circle-036.html shape-outside-circle-036-ref.html
== shape-outside-circle-037.html shape-outside-circle-036-ref.html
== shape-outside-circle-038.html shape-outside-circle-036-ref.html
-== shape-outside-circle-039.html shape-outside-circle-039-ref.html
-== shape-outside-circle-040.html shape-outside-circle-039-ref.html
== shape-outside-circle-041.html shape-outside-circle-041-ref.html
== shape-outside-circle-042.html shape-outside-circle-042-ref.html
== shape-outside-circle-043.html shape-outside-circle-042-ref.html
== shape-outside-circle-044.html shape-outside-circle-042-ref.html
-== shape-outside-circle-045.html shape-outside-circle-045-ref.html
-== shape-outside-circle-046.html shape-outside-circle-045-ref.html
== shape-outside-circle-047.html shape-outside-circle-047-ref.html
== shape-outside-circle-048.html shape-outside-circle-048-ref.html
== shape-outside-circle-049.html shape-outside-circle-049-ref.html
@@ -88,8 +84,6 @@
# Basic shape: inset()
== shape-outside-inset-016.html shape-outside-inset-016-ref.html
== shape-outside-inset-017.html shape-outside-inset-017-ref.html
-== shape-outside-inset-018.html shape-outside-inset-018-ref.html
-== shape-outside-inset-019.html shape-outside-inset-019-ref.html
== shape-outside-inset-020.html shape-outside-inset-020-ref.html
== shape-outside-inset-021.html shape-outside-inset-021-ref.html
== shape-outside-inset-022.html shape-outside-inset-022-ref.html
@@ -108,10 +102,4 @@
== shape-outside-polygon-023.html shape-outside-polygon-023-ref.html
== shape-outside-polygon-024.html shape-outside-polygon-024-ref.html
== shape-outside-polygon-025.html shape-outside-polygon-025-ref.html
-== shape-outside-polygon-026.html shape-outside-polygon-026-ref.html
-== shape-outside-polygon-027.html shape-outside-polygon-027-ref.html
-== shape-outside-polygon-028.html shape-outside-polygon-026-ref.html
-== shape-outside-polygon-029.html shape-outside-polygon-027-ref.html
-== shape-outside-polygon-030.html shape-outside-polygon-030-ref.html
-== shape-outside-polygon-031.html shape-outside-polygon-031-ref.html
== shape-outside-polygon-032.html shape-outside-polygon-032-ref.html
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html
deleted file mode 100644
index eee9701e002..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, circle(0%) border-box reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- /* Omit shape-outside */
- clip-path: circle(0%) border-box;
- box-sizing: content-box;
- height: 20px;
- width: 20px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 10px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 12px; top: 0px; left: 0px;"></div>
- <div class="box" style="height: 12px; top: 12px; left: 0px;"></div>
- <div class="box" style="height: 36px; top: 24px; left: 0px;"></div>
- <div class="box" style="height: 36px; top: 60px; left: 0px;"></div>
- <div class="box" style="height: 12px; top: 96px; left: 0px;"></div>
- <div class="box" style="height: 12px; top: 108px; left: 0px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html
deleted file mode 100644
index 833e0a788b0..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, circle(0%) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-circle-039-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the left float shape defines an empty float area by the basic shape circle(0%) border-box value.">
- <style>
- .container {
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- shape-outside: circle(0%) border-box;
- clip-path: circle(0%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 10px;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html
deleted file mode 100644
index e1beda86d1f..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, circle(closest-side at left center) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-circle-039-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the left float shape defines an empty float area by the basic shape circle(closest-side at left center) border-box value.">
- <style>
- .container {
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- shape-outside: circle(closest-side at left center) border-box;
- clip-path: circle(closest-side at left center) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 10px;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html
deleted file mode 100644
index 843c8bad940..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, circle(0%) border-box reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- direction: rtl;
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- /* Omit shape-outside */
- clip-path: circle(0%) border-box;
- box-sizing: content-box;
- height: 20px;
- width: 20px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 10px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 12px; top: 0px; right: 0px;"></div>
- <div class="box" style="height: 12px; top: 12px; right: 0px;"></div>
- <div class="box" style="height: 36px; top: 24px; right: 0px;"></div>
- <div class="box" style="height: 36px; top: 60px; right: 0px;"></div>
- <div class="box" style="height: 12px; top: 96px; right: 0px;"></div>
- <div class="box" style="height: 12px; top: 108px; right: 0px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html
deleted file mode 100644
index 42c73fd5fae..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, circle(0%) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-circle-045-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the right float shape defines an empty float area by the basic shape circle(0%) border-box value.">
- <style>
- .container {
- direction: rtl;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- shape-outside: circle(0%) border-box;
- clip-path: circle(0%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 10px;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html
deleted file mode 100644
index 7cfc406570e..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, circle(closest-side at right center) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-circle-045-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the right float shape defines an empty float area by the basic shape circle(closest-side at right center) border-box value.">
- <style>
- .container {
- direction: rtl;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- shape-outside: circle(closest-side at right center) border-box;
- clip-path: circle(closest-side at right center) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 10px;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 12px;"></div>
- <div class="box" style="height: 12px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html
deleted file mode 100644
index f4e47641407..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, inset(50%) reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- /* Omit shape-outside */
- clip-path: inset(50%);
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 24px; top: 0; left: 0;"></div>
- <div class="box" style="height: 36px; top: 24px; left: 0;"></div>
- <div class="box" style="height: 36px; top: 60px; left: 0;"></div>
- <div class="box" style="height: 24px; top: 96px; left: 0;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html
deleted file mode 100644
index b784677bd1b..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, inset(50%)</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-inset-018-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the left float shape defines an empty float area by the basic shape inset(50%) value.">
- <style>
- .container {
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- shape-outside: inset(50%);
- clip-path: inset(50%);
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 24px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 24px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html
deleted file mode 100644
index 1e0a3f34152..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, inset(50%) reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- direction: rtl;
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- /* Omit shape-outside */
- clip-path: inset(50%);
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 24px; top: 0; right: 0;"></div>
- <div class="box" style="height: 36px; top: 24px; right: 0;"></div>
- <div class="box" style="height: 36px; top: 60px; right: 0;"></div>
- <div class="box" style="height: 24px; top: 96px; right: 0;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html
deleted file mode 100644
index c6eeb137209..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, inset(50%)</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-inset-019-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the right float shape defines an empty float area by the basic shape inset(50%) value.">
- <style>
- .container {
- direction: rtl;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- shape-outside: inset(50%);
- clip-path: inset(50%);
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 200px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 24px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 36px;"></div>
- <div class="box" style="height: 24px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html
deleted file mode 100644
index 3237b6dd5fd..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, polygon(60px 20px, 100px 60px) border-box reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- /* Omit shape-outside */
- clip-path: polygon(60px 20px, 100px 60px) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 80px;
- background-color: blue;
- }
-
- .long {
- width: 200px;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="long box" style="height: 30px; top: 0; left: 0;"></div>
- <div class="long box" style="height: 30px; top: 30px; left: 0;"></div>
- <div class="long box" style="height: 20px; top: 60px; left: 0;"></div>
- <div class="long box" style="height: 20px; top: 80px; left: 0;"></div>
- <div class="long box" style="height: 30px; top: 100px; left: 0;"></div>
- <div class="long box" style="height: 30px; top: 130px; left: 0;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html
deleted file mode 100644
index 29e4ccaee4a..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, polygon(60px 20px, 100px 60px) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-polygon-026-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the left float shape defines an empty float area by the polygon(60px 20px, 100px 60px) border-box value.">
- <style>
- .container {
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- /* Less than three vertices, resulting an empty area. */
- shape-outside: polygon(60px 20px, 100px 60px) border-box;
- clip-path: polygon(60px 20px, 100px 60px) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- margin: 20px;
- border: 20px solid lightgreen;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 80px;
- background-color: blue;
- }
-
- .long {
- width: 200px;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html
deleted file mode 100644
index bbc9af6ab23..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, polygon(60px 20px, 100px 60px) border-box reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- /* Omit shape-outside */
- clip-path: polygon(60px 20px, 100px 60px) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 80px;
- background-color: blue;
- }
-
- .long {
- width: 200px;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="long box" style="height: 30px; top: 0; right: 0;"></div>
- <div class="long box" style="height: 30px; top: 30px; right: 0;"></div>
- <div class="long box" style="height: 20px; top: 60px; right: 0;"></div>
- <div class="long box" style="height: 20px; top: 80px; right: 0;"></div>
- <div class="long box" style="height: 30px; top: 100px; right: 0;"></div>
- <div class="long box" style="height: 30px; top: 130px; right: 0;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html
deleted file mode 100644
index 6507b0486ac..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, polygon(60px 20px, 100px 60px) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-polygon-027-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the right float shape defines an empty float area by the polygon(60px 20px, 100px 60px) border-box value.">
- <style>
- .container {
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- /* Less than three vertices, resulting an empty area. */
- shape-outside: polygon(60px 20px, 100px 60px) border-box;
- clip-path: polygon(60px 20px, 100px 60px) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- margin: 20px;
- border: 20px solid lightgreen;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 80px;
- background-color: blue;
- }
-
- .long {
- width: 200px;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html
deleted file mode 100644
index 4695a377c42..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-polygon-026-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the left float shape defines an empty float area by the polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box value.">
- <style>
- .container {
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- /* All vertices are collinear, resulting an empty area. */
- shape-outside: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box;
- clip-path: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- margin: 20px;
- border: 20px solid lightgreen;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 80px;
- background-color: blue;
- }
-
- .long {
- width: 200px;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html
deleted file mode 100644
index ac94bf14e8c..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-polygon-027-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the right float shape defines an empty float area by the polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box value.">
- <style>
- .container {
- direction: rtl;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- /* All vertices are collinear, resulting an empty area. */
- shape-outside: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box;
- clip-path: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- margin: 20px;
- border: 20px solid lightgreen;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 80px;
- background-color: blue;
- }
-
- .long {
- width: 200px;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 20px;"></div>
- <div class="long box" style="height: 30px;"></div>
- <div class="long box" style="height: 30px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html
deleted file mode 100644
index 3ea0025830e..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- /* Omit shape-outside */
- clip-path: polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 80px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 30px; top: 0; left: 80px;"></div>
- <div class="box" style="height: 30px; top: 30px; left: 80px;"></div>
- <div class="box" style="height: 20px; top: 60px; left: 80px;"></div>
- <div class="box" style="height: 20px; top: 80px; left: 80px;"></div>
- <div class="box" style="height: 30px; top: 100px; left: 80px;"></div>
- <div class="box" style="height: 30px; top: 130px; left: 80px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html
deleted file mode 100644
index 5e98fc3f99e..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float left, polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-polygon-030-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the boxes are wrapping around the left float shape defined by the polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box value.">
- <style>
- .container {
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: left;
- /* polygon contains horizontal lines. */
- shape-outside: polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box;
- clip-path: polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- margin: 20px;
- border: 20px solid lightgreen;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 80px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 30px;"></div>
- <div class="box" style="height: 30px;"></div>
- <div class="box" style="height: 20px;"></div>
- <div class="box" style="height: 20px;"></div>
- <div class="box" style="height: 30px;"></div>
- <div class="box" style="height: 30px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html
deleted file mode 100644
index 5412c77dac0..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box reference</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <style>
- .container {
- direction: rtl;
- position: absolute;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- /* Omit shape-outside */
- clip-path: polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- border: 20px solid lightgreen;
- margin: 20px;
- background-color: orange;
- }
-
- .box {
- position: absolute;
- width: 80px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 30px; top: 0; right: 80px;"></div>
- <div class="box" style="height: 30px; top: 30px; right: 80px;"></div>
- <div class="box" style="height: 20px; top: 60px; right: 80px;"></div>
- <div class="box" style="height: 20px; top: 80px; right: 80px;"></div>
- <div class="box" style="height: 30px; top: 100px; right: 80px;"></div>
- <div class="box" style="height: 30px; top: 130px; right: 80px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html
deleted file mode 100644
index 747248eaf85..00000000000
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<!-- Any copyright is dedicated to the Public Domain.
- - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<html>
- <meta charset="utf-8">
- <title>CSS Shape Test: float right, polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box</title>
- <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
- <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
- <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes">
- <link rel="match" href="shape-outside-polygon-031-ref.html">
- <meta name="flags" content="">
- <meta name="assert" content="Test the boxes are wrapping around the right float shape defined by the polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box value.">
- <style>
- .container {
- direction: rtl;
- width: 200px;
- line-height: 0;
- }
-
- .shape {
- float: right;
- /* polygon contains horizontal lines. */
- shape-outside: polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box;
- clip-path: polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box;
- box-sizing: content-box;
- height: 40px;
- width: 40px;
- padding: 20px;
- margin: 20px;
- border: 20px solid lightgreen;
- background-color: orange;
- }
-
- .box {
- display: inline-block;
- width: 80px;
- background-color: blue;
- }
- </style>
-
- <body class="container">
- <div class="shape"></div>
- <div class="box" style="height: 30px;"></div>
- <div class="box" style="height: 30px;"></div>
- <div class="box" style="height: 20px;"></div>
- <div class="box" style="height: 20px;"></div>
- <div class="box" style="height: 30px;"></div>
- <div class="box" style="height: 30px;"></div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter
index 3f780b1c981..1d487fe3a98 100644
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter
@@ -12,7 +12,6 @@ P /sync-tests-filter
##### destination end if present).
H /test-template-001.xht
H /references/test-template-001.xht
-H reftest-stylo.list
# css-supports-027 uses @-moz-document, so we don't submit it.
# css-supports-046 tests the equivalent with @media.
diff --git a/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md b/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md
index 51e09badbc2..5cbe0bc377b 100644
--- a/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md
+++ b/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md
@@ -45,7 +45,7 @@ Note that if the element that's keys need to be send to does not have
a unique ID, the document must not have any DOM mutations made
between the function being called and the promise settling.
-To send special keys, one must send the respective key's codepoint. Since this uses the WebDriver protocol, you can find a list for code points to special keys in the spec (here)[https://w3c.github.io/webdriver/webdriver-spec.html#keyboard-actions].
+To send special keys, one must send the respective key's codepoint. Since this uses the WebDriver protocol, you can find a [list for code points to special keys in the spec](https://w3c.github.io/webdriver/webdriver-spec.html#keyboard-actions).
For example, to send the tab key you would send "\uE004".
[testharness]: {{ site.baseurl }}{% link _writing-tests/testharness.md %}
diff --git a/tests/wpt/web-platform-tests/dom/interfaces.html b/tests/wpt/web-platform-tests/dom/interfaces.html
index 3cb08f405a5..c0fab016ae7 100644
--- a/tests/wpt/web-platform-tests/dom/interfaces.html
+++ b/tests/wpt/web-platform-tests/dom/interfaces.html
@@ -19,11 +19,8 @@ element.setAttribute("bar", "baz");
var idlArray = new IdlArray();
function doTest([html, dom]) {
- // HTML is needed for EventHandler. Provide a dummy interface for
- // LinkStyle which HTML depends on but we're not testing.
- idlArray.add_untested_idls('interface LinkStyle {};');
- idlArray.add_untested_idls(html);
idlArray.add_idls(dom);
+ idlArray.add_dependency_idls(html);
idlArray.add_objects({
EventTarget: ['new EventTarget()'],
Event: ['document.createEvent("Event")', 'new Event("foo")'],
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html
index 5d0e4cb86f7..8448bf48a77 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html
@@ -4,8 +4,23 @@
<meta charset="utf-8"/>
<title>cseucpkdfmtjapanese decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'cseucpkdfmtjapanese' as for a document labeled 'euc-jp'.">
@@ -15,51 +30,15 @@
<script src="jis0208_index.js"></script>
<script src="jis0212_index.js"></script>
<script src="eucjp-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(eucjpDecoder);">
<iframe src="eucjp_chars-cseucpkdfmtjapanese.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- eucjpDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(
- nodes[i].textContent,
- eucjpDecoder(nodes[i].dataset.bytes)
- );
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html
index 6b99117e79d..b66bb2d96d1 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html
@@ -4,8 +4,23 @@
<meta charset="utf-8"/>
<title>x-euc-jp decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'x-euc-jp' as for a document labeled 'euc-jp'.">
@@ -15,51 +30,15 @@
<script src="jis0208_index.js"></script>
<script src="jis0212_index.js"></script>
<script src="eucjp-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(eucjpDecoder);">
<iframe src="eucjp_chars-x-euc-jp.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- eucjpDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(
- nodes[i].textContent,
- eucjpDecoder(nodes[i].dataset.bytes)
- );
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html
index ed05e3112f7..088985682e1 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html
@@ -4,8 +4,23 @@
<meta charset="utf-8"/>
<title>EUC-JP decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser decodes all characters as expected from a file generated by encoding all pointers in the euc-jp encoding per the encoder steps in the specification.">
@@ -15,51 +30,15 @@
<script src="jis0208_index.js"></script>
<script src="jis0212_index.js"></script>
<script src="eucjp-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(eucjpDecoder);">
<iframe src="eucjp_chars.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- eucjpDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(
- nodes[i].textContent,
- eucjpDecoder(nodes[i].dataset.bytes)
- );
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html
index f64f0ed287e..83a674bb58f 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html
@@ -4,8 +4,17 @@
<meta charset="cseucpkdfmtjapanese"><!-- test breaks if the server overrides this -->
<title>cseucpkdfmtjapanese encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "cseucpkdfmtjapanese";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = eucjpEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html
index f79178aefc4..0d7585c01fc 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html
@@ -4,8 +4,31 @@
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (form, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,167 +41,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0x4e00; i < 0x9fba; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
- }
-
- for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0xfa70; i < 0xfada; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "euc-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = eucjpEncoder;
+var ranges = rangesHan;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html
index 0f9ecff2dad..8c70e8f7ee4 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html
@@ -4,8 +4,21 @@
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (form, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,132 +31,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0xac00; i < 0xd7af; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "euc-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = eucjpEncoder;
+var ranges = rangesHangul;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html
index 54da3eb89bc..c80193cc1a0 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html
@@ -4,8 +4,13 @@
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (form, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,176 +23,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (var i = 0x80; i < 0x4ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
- }
-
- for (i = 0x2000; i < 0x23ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
- }
-
- for (i = 0x2460; i < 0x26ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
- }
-
- for (i = 0x3000; i < 0x33ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
- }
-
- for (i = 0xff00; i < 0xffef; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "euc-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = eucjpEncoder;
+var ranges = rangesMisc;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html
index 37ec8f8c86a..30c376ccf62 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html
@@ -4,8 +4,17 @@
<meta charset="x-euc-jp"><!-- test breaks if the server overrides this -->
<title>x-euc-jp encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "x-euc-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = eucjpEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html
index 297ed841016..cd6bcdc32d3 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html
@@ -4,8 +4,17 @@
<meta charset="euc-jp"><!-- test breaks if the server overrides this -->
<title>EUC-JP encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "euc-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = eucjpEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html
index c0519e8be10..5883c006e84 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html
@@ -4,97 +4,56 @@
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (href, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-10000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the euc-jp encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (i = 0x4e00; i < 0x9fba; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
-}
-
-for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
+var errors = true;
+var encoder = eucjpEncoder;
+var ranges = rangesHan;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-for (i = 0xfa70; i < 0xfada; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html
index 29c9f223e90..695aad887c9 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html
@@ -4,62 +4,46 @@
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (href, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-10000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the euc-jp encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (i = 0xac00; i < 0xd7af; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
+var errors = true;
+var encoder = eucjpEncoder;
+var ranges = rangesHangul;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html
index 1456b945ae5..ba884f329a2 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html
@@ -4,106 +4,38 @@
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (href, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the euc-jp encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (var i = 0x80; i < 0x4ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
-}
-
-for (i = 0x2000; i < 0x23ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
-}
-
-for (i = 0x2460; i < 0x26ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
+var errors = true;
+var encoder = eucjpEncoder;
+var ranges = rangesMisc;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-for (i = 0x3000; i < 0x33ff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0xff00; i < 0xffef; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html
index 05b6c2c0939..9d60edabda9 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html
@@ -4,59 +4,38 @@
<meta charset=euc-jp> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding (href)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the euc-jp encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification.">
-<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(normalizeStr(result), normalizeStr(expected));
- }, desc);
-}
-
-// create a simple list of just those code points for which there is an encoding possible
-codepoints = [];
-for (var i = 0x80; i < 0xffff; i++) {
- result = eucjpEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- "U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
-</script>
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
+<script>
+var errors = false;
+var encoder = eucjpEncoder;
+var ranges = rangesAll;
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
+}
+</script>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html
index 73d8a2f2d0a..d9dc2f09cc2 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>csiso2022jp decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csiso2022jp' as for a document labeled 'iso-2022-jp'.">
@@ -14,50 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(iso2022jpDecoder);">
<iframe src="iso2022jp_chars-csiso2022jp.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- iso2022jpDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(
- nodes[i].textContent,
- iso2022jpDecoder(nodes[i].dataset.bytes)
- );
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html
index 192e25e38b3..4434e545cb5 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>ISO 2022-JP decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp">
<meta name="assert" content="The browser decodes all characters as expected from a file generated by encoding all pointers in the iso-2022-jp encoding per the encoder steps in the specification.">
@@ -14,50 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(iso2022jpDecoder);">
<iframe src="iso2022jp_chars.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- iso2022jpDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(
- nodes[i].textContent,
- iso2022jpDecoder(nodes[i].dataset.bytes)
- );
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html
index 213791af35d..cd8d41b5aa6 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html
@@ -4,8 +4,17 @@
<meta charset="csiso2022jp"> <!-- test breaks if the server overrides this -->
<title>csiso2022jp encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,19 +27,19 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = "\u0019";
-var encodedSeperator = encodeURIComponent("\u0019");
-var currentChunkIndex = 0;
+var errors = false;
+var separator = "\u0019";
+var ranges = rangesAll;
+
+function expect(result, codepoint) {
+ return result;
+}
+
+function encoder(str) {
+ return getByteSequence(str.codePointAt(0));
+}
function getByteSequence(cp) {
// uses the Encoding spec algorithm to derive a sequence of bytes for a character that can be encoded
@@ -121,118 +130,7 @@ for (p = 0; p < jis0208.length; p++) {
indexcodepoints[jis0208[p]] = p;
}
}
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = getByteSequence(i);
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = result;
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- normalizeStr(item.expected)
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "csiso2022jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
-}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html
index 13d4b968b15..b288479d909 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html
@@ -4,8 +4,30 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022 JP encoding errors (form, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,167 +40,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = "\u0019";
-var encodedSeperator = encodeURIComponent("\u0019");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0x4e00; i < 0x9fba; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
- }
-
- for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0xfa70; i < 0xfada; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- normalizeStr(item.expected)
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "iso-2022-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = iso2022jpEncoder;
+var ranges = rangesHan;
+var separator = "\u0019";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html
index 1f1cce21f00..eb4d8d23c13 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html
@@ -4,8 +4,21 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022 JP encoding errors (form, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,132 +31,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = "\u0019";
-var encodedSeperator = encodeURIComponent("\u0019");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0xac00; i < 0xd7af; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- normalizeStr(item.expected)
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "iso-2022-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = iso2022jpEncoder;
+var ranges = rangesHangul;
+var separator = "\u0019";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html
index 54acbe487b6..95467bad4f0 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html
@@ -4,8 +4,13 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022 JP encoding errors (form, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,176 +23,24 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = "\u0019";
-var encodedSeperator = encodeURIComponent("\u0019");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (var i = 0xa0; i < 0x4ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
- }
-
- for (i = 0x2000; i < 0x23ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
- }
-
- for (i = 0x2460; i < 0x26ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
- }
-
- for (i = 0x3000; i < 0x33ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
- }
-
- for (i = 0xff00; i < 0xffef; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- normalizeStr(item.expected)
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "iso-2022-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = iso2022jpEncoder;
+var ranges = rangesMisc;
+var separator = "\u0019";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html
index f196c31b38a..3a1b3b91ea5 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html
@@ -4,8 +4,17 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022 JP encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,129 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = "\u0019";
-var encodedSeperator = encodeURIComponent("\u0019");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- item.expected = item.expected.replace(/%1B%28%42$/, "");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "iso-2022-jp";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(normalizeStr(results[j]), cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = iso2022jpEncoder;
+var ranges = rangesAll;
+var separator = "\u0019";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%").replace(/%1B%28%42$/, "");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html
index f12da7077f7..125d0415a8c 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html
@@ -4,95 +4,49 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022-JP encoding errors (href, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the iso-2022-jp encoding.">
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
+var errors = true;
+var encoder = iso2022jpEncoder;
+var ranges = rangesHan;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (i = 0x4e00; i < 0x9fba; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
-}
-
-for (i = 0xfa70; i < 0xfada; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
-}
-
-for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
</script>
+<script src="../../resources/encode-href-common.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html
index 04dc69df036..6e588359d02 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html
@@ -4,60 +4,40 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022-JP encoding errors (href, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the iso-2022-jp encoding.">
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
+var errors = true;
+var encoder = iso2022jpEncoder;
+var ranges = rangesHangul;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (i = 0xac00; i < 0xd7af; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
</script>
+<script src="../../resources/encode-href-common.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html
index 5fee8bb7c10..8d8150d3d0b 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html
@@ -4,104 +4,32 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022-JP encoding errors (href, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the iso-2022-jp encoding.">
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
+var errors = true;
+var encoder = iso2022jpEncoder;
+var ranges = rangesMisc;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (var i = 0x80; i < 0x4ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0x2000; i < 0x23ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
-}
-
-for (i = 0x2460; i < 0x26ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
-}
-
-for (i = 0x3000; i < 0x33ff; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
-}
-
-for (i = 0xff00; i < 0xffef; i++) {
- result = iso2022jpEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
</script>
+<script src="../../resources/encode-href-common.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html
index dcea8fcdec4..08b8c2647cd 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html
@@ -4,58 +4,32 @@
<meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this -->
<title>ISO 2022-JP encoding (href)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="iso2022jp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp">
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the iso-2022-jp encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification.">
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(normalizeStr(result), normalizeStr(expected));
- }, desc);
+var errors = false;
+var encoder = iso2022jpEncoder;
+var ranges = rangesAll;
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%").replace(/%1B%28%42$/, "");;
}
-
-// create a simple list of just those code points for which there is an encoding possible
-codepoints = [];
-for (var i = 0x80; i < 0xffff; i++) {
- var result = iso2022jpEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- item.expected = item.expected.replace(/%1B%28%42$/, "");
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- "U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
</script>
+<script src="../../resources/encode-href-common.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html
index 9c811a93748..d6893754c64 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>csshiftjis decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csshiftjis' as for a document labeled 'shift_jis'.">
@@ -14,47 +23,15 @@
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars-csshiftjis.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html
index be96f70dcde..50ac2b7f15a 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html
@@ -7,7 +7,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser decodes characters that are not recognised from the shift_jis index as replacement characters.">
<style>
iframe { display:none }
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html
index a73294f5328..e65a486d6dc 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>ms932 decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'ms932' as for a document labeled 'shift_jis'.">
@@ -14,47 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars-ms932.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html
index 2b2c298024b..c59b1da0651 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>ms_kanji decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'ms_kanji' as for a document labeled 'shift_jis'.">
@@ -14,47 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars-ms_kanji.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html
index dabb661ad2d..62159d1eddd 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>shift-jis decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'shift-jis' as for a document labeled 'shift_jis'.">
@@ -14,47 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars-shift-jis.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html
index d66b5184949..9c4047e03e7 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>sjis decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'sjis' as for a document labeled 'shift_jis'.">
@@ -14,47 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars-sjis.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html
index 099cba681ac..2ed617b23ca 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>windows-31j decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'windows-31j' as for a document labeled 'shift_jis'.">
@@ -14,47 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars-windows-31j.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html
index 5ffa4617d1a..02e6a5d33bc 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html
@@ -4,8 +4,17 @@
<meta charset="utf-8"/>
<title>x-sjis decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'x-sjis' as for a document labeled 'shift_jis'.">
@@ -14,47 +23,14 @@
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars-x-sjis.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html
index e0355c2fb32..b05bc28f5bf 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html
@@ -4,57 +4,33 @@
<meta charset="utf-8"/>
<title>ShiftJIS decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser decodes all characters as expected from a file generated by encoding all pointers in the shift_jis encoding per the shift_jis encoder steps in the specification.">
<style>
iframe { display:none }
</style>
<script src="jis0208_index.js"></script>
<script src="sjis-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(sjisDecoder);">
<iframe src="sjis_chars.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- sjisDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html
index dd21b766d67..90002ca23df 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html
@@ -4,13 +4,22 @@
<meta charset="csshiftjis"> <!-- test breaks if the server overrides this -->
<title>csshiftjis encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'csshiftjis' as for a document labeled 'euc-jp'.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'csshiftjis' as for a document labeled 'shift_jis'.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "csshiftjis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html
index 8f802439e94..0c3f661941f 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html
@@ -4,12 +4,34 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding errors (form, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding han characters that are not in the shift_jis encoding.">
<style>
iframe { display:none }
@@ -18,162 +40,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0x4e00; i < 0x9fba; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
- }
-
- for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0xfa70; i < 0xfada; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "shift_jis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(document.getElementsByTagName("form"));
- inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = sjisEncoder;
+var ranges = rangesHan;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html
index b2a953e1b98..b62829f5da2 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html
@@ -4,12 +4,25 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding errors (form, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding hangul characters that are not in the shift_jis encoding.">
<style>
iframe { display:none }
@@ -18,132 +31,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0xac00; i < 0xd7af; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "shift_jis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = sjisEncoder;
+var ranges = rangesHangul;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html
index 0dc90d16cdf..5bb89fe330e 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html
@@ -4,12 +4,17 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding errors (form, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding miscellaneous characters that are not in the shift_jis encoding.">
<style>
iframe { display:none }
@@ -18,172 +23,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (var i = 0x80; i < 0x4ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
- }
-
- for (i = 0x2000; i < 0x23ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
- }
-
- for (i = 0x2460; i < 0x26ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
- }
-
- for (i = 0x3000; i < 0x33ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
- }
-
- for (i = 0xff00; i < 0xffef; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "shift_jis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(document.getElementsByTagName("form"));
- inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = sjisEncoder;
+var ranges = rangesMisc;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html
index f18bf665311..bc440f3736f 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html
@@ -4,13 +4,22 @@
<meta charset="ms932"> <!-- test breaks if the server overrides this -->
<title>ms932 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms932' as for a document labeled 'euc-jp'.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms932' as for a document labeled 'shift_jis'.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "ms932";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html
index 5b09074c153..8de1fbf0dd2 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html
@@ -4,13 +4,22 @@
<meta charset="ms_kanji"> <!-- test breaks if the server overrides this -->
<title>ms_kanji encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms_kanji' as for a document labeled 'euc-jp'.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms_kanji' as for a document labeled 'shift_jis'.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "ms_kanji";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html
index cd6bb6e7fb9..7a3bd86e3a8 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html
@@ -4,13 +4,22 @@
<meta charset="shift-jis"> <!-- test breaks if the server overrides this -->
<title>shift-jis encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'shift-jis' as for a document labeled 'euc-jp'.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'shift-jis' as for a document labeled 'shift_jis'.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "shift-jis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html
index ddade82fc34..c6ff9b0a85e 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html
@@ -4,13 +4,22 @@
<meta charset="sjis"> <!-- test breaks if the server overrides this -->
<title>sjis encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'sjis' as for a document labeled 'euc-jp'.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'sjis' as for a document labeled 'shift_jis'.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "sjis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html
index 335f622545d..596f011fc0d 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html
@@ -4,13 +4,22 @@
<meta charset="windows-31j"> <!-- test breaks if the server overrides this -->
<title>windows-31j encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'windows-31j' as for a document labeled 'euc-jp'.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'windows-31j' as for a document labeled 'shift_jis'.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "windows-31j";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html
index 1d754ffe615..674c83daabf 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html
@@ -4,13 +4,22 @@
<meta charset="x-sjis"> <!-- test breaks if the server overrides this -->
<title>x-sjis encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'x-sjis' as for a document labeled 'euc-jp'.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'x-sjis' as for a document labeled 'shift_jis'.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "x-sjis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html
index 66d14835a11..5aa96ac04b3 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html
@@ -4,13 +4,22 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
-<meta name="assert" content="The browser produces the expected byte sequences for all characters in the shift_jis encoding after 0x9F when encoding bytes for a URL produced by a form, using the encoder steps in the specification.">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
+<meta name="assert" content="The browser produces the expected byte sequences for all characters in the shift_jis encoding after 0x9F when encoding bytes for a URL produced by a form, using the encoder steps in the specification.">
<style>
iframe { display:none }
form { display:none }
@@ -18,131 +27,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
var separator = ",";
-var encodedSeparator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "shift_jis";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(separator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeparator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html
index 1f70550a2a2..0f883a685d4 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html
@@ -4,97 +4,57 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding errors (href, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-10000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the shift_jis encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (i = 0x4e00; i < 0x9fba; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
-}
-
-for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
+var errors = true;
+var encoder = sjisEncoder;
+var ranges = rangesHan;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-for (i = 0xfa70; i < 0xfada; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html
index 29ec1a51820..9bc926bb158 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html
@@ -4,62 +4,47 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding (href, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the shift_jis encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (i = 0xac00; i < 0xd7af; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
+var errors = true;
+var encoder = sjisEncoder;
+var ranges = rangesHangul;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html
index 8341d834a7a..890c3976005 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html
@@ -4,106 +4,39 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding (href, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the shift_jis encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (var i = 0x80; i < 0x4ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
-}
-
-for (i = 0x2000; i < 0x23ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
-}
-
-for (i = 0x2460; i < 0x26ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
+var errors = true;
+var encoder = sjisEncoder;
+var ranges = rangesMisc;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-for (i = 0x3000; i < 0x33ff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0xff00; i < 0xffef; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html
index 35c33fa982d..288e4da4b31 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html
@@ -4,59 +4,40 @@
<meta charset="shift_jis"> <!-- test breaks if the server overrides this -->
<title>Shift_jis encoding (href)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="sjis-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
-<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis">
+<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis">
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the shift_jis encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification.">
-<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(normalizeStr(result), normalizeStr(expected));
- }, desc);
-}
-
-// create a simple list of just those code points for which there is an encoding possible
-codepoints = [];
-for (var i = 0x80; i < 0xffff; i++) {
- result = sjisEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- "U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
-</script>
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
+<script>
+var errors = false;
+var encoder = sjisEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
+}
+</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
+
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html
index 4e1720d7a47..8cd06a7d065 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html
@@ -4,8 +4,27 @@
<meta charset="utf-8"/>
<title>cseuckr decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'cseuckr' as for a document labeled 'euc-kr'.">
@@ -14,47 +33,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-cseuckr.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html
index bedfd7d551f..6d7e6b08853 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html
@@ -4,8 +4,27 @@
<meta charset="utf-8"/>
<title>csksc56011987 decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csksc56011987' as for a document labeled 'euc-kr'.">
@@ -14,47 +33,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-csksc56011987.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html
index ce71d3b3a05..48e7fca777d 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-iso-ir-149.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html
index 8a6971f7517..59ffdce82b9 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-korean.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html
index 5c38428f59a..7a26f489b7a 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-ks_c_5601-1987.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html
index 09066b52ee7..8c75cf50c1b 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-ks_c_5601-1989.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html
index 64e4e97bc37..83c09223c98 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-ksc5601.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html
index 74292461841..6499ab578f9 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-ksc_5601.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html
index 66e71af72fa..1f2f302d3c4 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars-windows-949.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html
index dab13027af1..a3b46f0d478 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html
@@ -14,47 +14,14 @@
</style>
<script src="euckr_index.js"></script>
<script src="euckr-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(euckrDecoder);">
<iframe src="euckr_chars.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- euckrDecoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html
index d8cdbe20c03..81143c31c7f 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html
@@ -4,8 +4,27 @@
<meta charset="cseuckr"> <!-- test breaks if the server overrides this -->
<title>cseuckr encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "cseuckr";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html
index 8c6b9d673a9..2ee63e5966e 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html
@@ -4,8 +4,27 @@
<meta charset="csksc56011987"> <!-- test breaks if the server overrides this -->
<title>csksc56011987 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "csksc56011987";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html
index 033362dc2e5..8d79541b825 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html
@@ -4,8 +4,33 @@
<meta charset="euc-kr"> <!-- test breaks if the server overrides this -->
<title>EUC-KR encoding errors (form, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-22000">
+<meta name="variant" content="?22001-23000">
+<meta name="variant" content="?23001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,163 +43,19 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0x4e00; i < 0x9fba; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
- }
-
- for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0xfa70; i < 0xfada; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "euc-kr";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(document.getElementsByTagName("form"));
- inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = euckrEncoder;
+var ranges = rangesHan;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers
deleted file mode 100644
index 3a990e85bfb..00000000000
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Content-Type: text/html; charset=euc-kr
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html
index 130980f043b..4a7fa6d7670 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html
@@ -4,8 +4,13 @@
<meta charset="euc-kr"> <!-- test breaks if the server overrides this -->
<title>EUC-KR encoding errors (form, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,172 +23,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of unicode codepoints that are not encoded
- var codepoints = [];
-
- for (var i = 0x80; i < 0x4ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
- }
-
- for (i = 0x2000; i < 0x23ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
- }
-
- for (i = 0x2460; i < 0x26ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
- }
-
- for (i = 0x3000; i < 0x33ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
- }
-
- for (i = 0xff00; i < 0xffef; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- " U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "euc-kr";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(document.getElementsByTagName("form"));
- inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = euckrEncoder;
+var ranges = rangesMisc;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html
index 4ced58e7ae9..df309c04237 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html
@@ -4,8 +4,27 @@
<meta charset="iso-ir-149"> <!-- test breaks if the server overrides this -->
<title>iso-ir-149 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "iso-ir-149";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html
index d7cae24445e..27b54f7e129 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html
@@ -4,8 +4,27 @@
<meta charset="korean"> <!-- test breaks if the server overrides this -->
<title>korean encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,140 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-// set up a sparse array of all unicode codepoints listed in the index
-// this will be used for lookup in getByteSequence
-var indexcodepoints = []; // index is unicode cp, value is pointer
-for (p = 0; p < euckr.length; p++) {
- if (euckr[p] != null && indexcodepoints[euckr[p]] == null) {
- indexcodepoints[euckr[p]] = p;
- }
-}
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "korean";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html
index f1f1b3720b4..1160f88568d 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html
@@ -4,8 +4,27 @@
<meta charset="ks_c_5601-1987"> <!-- test breaks if the server overrides this -->
<title>ks_c_5601-1987 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "ks_c_5601-1987";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html
index 8a36d77acbf..d8f1d801642 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html
@@ -4,8 +4,27 @@
<meta charset="ks_c_5601-1989"> <!-- test breaks if the server overrides this -->
<title>ks_c_5601-1989 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,140 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-// set up a sparse array of all unicode codepoints listed in the index
-// this will be used for lookup in getByteSequence
-var indexcodepoints = []; // index is unicode cp, value is pointer
-for (p = 0; p < euckr.length; p++) {
- if (euckr[p] != null && indexcodepoints[euckr[p]] == null) {
- indexcodepoints[euckr[p]] = p;
- }
-}
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "ks_c_5601-1989";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html
index bc132bd627e..b6facc4d4ca 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html
@@ -4,8 +4,27 @@
<meta charset="ksc5601"> <!-- test breaks if the server overrides this -->
<title>ksc5601 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "ksc5601";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html
index f306e5b08f2..78b9fe5271a 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html
@@ -4,8 +4,27 @@
<meta charset="ksc_5601"> <!-- test breaks if the server overrides this -->
<title>ksc_5601 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "ksc_5601";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html
index 3d2b4d1d302..aac30680495 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html
@@ -4,8 +4,28 @@
<meta charset="windows-949"> <!-- test breaks if the server overrides this -->
<title>windows-949 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
+
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +38,17 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "windows-949";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
+
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html
index 47e40aa68a5..545f8ac93f6 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html
@@ -4,8 +4,27 @@
<meta charset="euc-kr"> <!-- test breaks if the server overrides this -->
<title>EUC-KR encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +37,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "euc-kr";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html
index ad334f9fba1..91ef21373ae 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html
@@ -4,97 +4,58 @@
<meta charset="euc-kr"> <!-- test breaks if the server overrides this -->
<title>EUC-KR encoding errors (href, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-22000">
+<meta name="variant" content="?22001-23000">
+<meta name="variant" content="?23001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the euc-kr encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (i = 0x4e00; i < 0x9fba; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
-}
-
-for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
+var errors = true;
+var encoder = euckrEncoder;
+var ranges = rangesHan;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-for (i = 0xfa70; i < 0xfada; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html
index 5185963588f..a72a161ab7a 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html
@@ -4,106 +4,38 @@
<meta charset="euc-kr"> <!-- test breaks if the server overrides this -->
<title>EUC-KR encoding errors (href, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the euc-kr encoding.">
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
+</head>
+<body>
+<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// set up a simple array of unicode codepoints that are not encoded
-var codepoints = [];
-
-for (var i = 0x80; i < 0x4ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
-}
-
-for (i = 0x2000; i < 0x23ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
-}
-
-for (i = 0x2460; i < 0x26ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
+var errors = true;
+var encoder = euckrEncoder;
+var ranges = rangesMisc;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
-
-for (i = 0x3000; i < 0x33ff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
-
-for (i = 0xff00; i < 0xffef; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the tests exclude ASCII characters
</script>
-</head>
-<body>
-<div id="log"></div>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html
index f03a417aeb7..a4963fd682a 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html
@@ -4,59 +4,48 @@
<meta charset="euc-kr"> <!-- test breaks if the server overrides this -->
<title>EUC-KR encoding (href)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="euckr_index.js"></script>
<script src="euckr-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr">
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the euc-kr encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification.">
-<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(normalizeStr(result), normalizeStr(expected));
- }, desc);
-}
-
-// create a simple list of just those code points for which there is an encoding possible
-codepoints = [];
-for (var i = 0x80; i < 0xffff; i++) {
- result = euckrEncoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- "U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the testsexclude ASCII characters
-</script>
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
</head>
<body>
<div id="log"></div>
+<script src="../../ranges.js"></script>
+<script>
+var errors = false;
+var encoder = euckrEncoder;
+var ranges = rangesAll;
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
+}
+</script>
+<script src="../../encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html
index e3344f69a48..c9c137fe07d 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html
@@ -4,8 +4,24 @@
<meta charset="utf-8"/>
<title>big5-hkscs decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'big5-hkscs' as for a document labeled 'big5'.">
@@ -15,49 +31,14 @@
</style>
<script src="big5_index.js"></script>
<script src="big5-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(big5Decoder);">
<iframe src="big5_chars-big5-hkscs.html" name="scriptWindow" id="scrwin"></iframe>
-
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- big5Decoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
-
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html
index 998b8a49cf0..d553e6eb384 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html
@@ -4,8 +4,24 @@
<meta charset="utf-8"/>
<title>cn-big5 decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'cn-big5' as for a document labeled 'big5'.">
@@ -15,49 +31,14 @@
</style>
<script src="big5_index.js"></script>
<script src="big5-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(big5Decoder);">
<iframe src="big5_chars-cn-big5.html" name="scriptWindow" id="scrwin"></iframe>
-
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- big5Decoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
-
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html
index d107eccf843..dc880d2dee4 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html
@@ -4,8 +4,24 @@
<meta charset="utf-8"/>
<title>csbig5 decoding</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csbig5' as for a document labeled 'big5'.">
@@ -15,49 +31,14 @@
</style>
<script src="big5_index.js"></script>
<script src="big5-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(big5Decoder);">
<iframe src="big5_chars-csbig5.html" name="scriptWindow" id="scrwin"></iframe>
-
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- big5Decoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
-
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html
index 7c5b0f9848e..9db3836741d 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html
@@ -15,48 +15,14 @@
</style>
<script src="big5_index.js"></script>
<script src="big5-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(big5Decoder);">
<iframe src="big5_chars_extra.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- big5Decoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
-
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html
index 31aec04e08a..563a3c81c37 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html
@@ -15,49 +15,14 @@
</style>
<script src="big5_index.js"></script>
<script src="big5-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
-<body onload="showNodes();">
+<body onload="showNodes(big5Decoder);">
<iframe src="big5_chars-x-x-big5.html" name="scriptWindow" id="scrwin"></iframe>
-
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- big5Decoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
-
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html
index 5a00717834d..17b2a7221dc 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html
@@ -15,6 +15,7 @@
</style>
<script src="big5_index.js"></script>
<script src="big5-decoder.js"></script>
+<script src="../../resources/decode-common.js"></script>
</head>
<body onload="showNodes();">
@@ -23,40 +24,5 @@
<div id="log"></div>
-<script>
-var tests = [];
-
-function iframeRef(frameRef) {
- return frameRef.contentWindow
- ? frameRef.contentWindow.document
- : frameRef.contentDocument;
-}
-
-function showNodes() {
- var iframe = iframeRef(document.getElementById("scrwin"));
- nodes = iframe.querySelectorAll("span");
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i] = async_test(
- "U+" +
- nodes[i].dataset.cp +
- " " +
- String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
- " " +
- big5Decoder(nodes[i].dataset.bytes) +
- " " +
- nodes[i].dataset.bytes
- );
- }
-
- for (var i = 0; i < nodes.length; i++) {
- tests[i].step(function() {
- assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes));
- });
- tests[i].done();
- }
-}
-</script>
-
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html
index 9fbfed63583..ee5f0c9aa86 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html
@@ -4,8 +4,24 @@
<meta charset="big5-hkscs"> <!-- test breaks if the server overrides this -->
<title>big5-hkscs encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -17,133 +33,17 @@
</style>
</head>
<body>
-
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0x2a6df; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5-hkscs";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = big5Encoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html
index 04db127dd86..4495f1ba7e9 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html
@@ -4,8 +4,24 @@
<meta charset="cn-big5"> <!-- test breaks if the server overrides this -->
<title>cn-big5 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -17,133 +33,18 @@
</style>
</head>
<body>
-
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0x2a6df; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "cn-big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = big5Encoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
+
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html
index 410fa50d684..4d71c775bb6 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html
@@ -4,8 +4,24 @@
<meta charset="csbig5"> <!-- test breaks if the server overrides this -->
<title>csbig5 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -17,133 +33,17 @@
</style>
</head>
<body>
-
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0x2a6df; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "csbig5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = big5Encoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html
index 752956f682e..d9eca7a3bf6 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html
@@ -4,8 +4,31 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (form, extB, part1)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,133 +41,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of miscellaneous unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0x20000; i < 0x2536b; i++) {
- // cjk extension A
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extB (pt 1)";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesExtBa;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html
index 186c7dc43f5..b7406f22619 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html
@@ -4,8 +4,31 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (form, extB, part2)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,133 +41,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of miscellaneous unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0x2536b; i < 0x2a6e0; i++) {
- // cjk extension A
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extB (pt 2) ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesExtBb;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html
index 0698ed52265..82930e2560d 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html
@@ -4,8 +4,24 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (form, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,175 +34,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of miscellaneous unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0x4e00; i < 0x9fba; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
- }
-
- for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0xfa70; i < 0xfada; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
- }
-
- for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
- }
- /*
- for (i=0x20000;i<0x2A6E0;i++) { // cjk extension A
- result = getByteSequence(i)
- if (!result) {
- var item = {}
- codepoints.push(item)
- item.cp = i
- item.expected = '%26%23'+item.cp+'%3B'
- item.desc = 'extension A '
- }
- }
- */
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(document.getElementsByTagName("form"));
- inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesHan;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html
index 106d9d1e3fb..ca90edf58db 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html
@@ -4,8 +4,21 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (form, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,132 +31,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 400;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of miscellaneous unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0xac00; i < 0xd7af; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesHangul;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html
index 98d68618664..34d90c1fe6e 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html
@@ -4,8 +4,13 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (form, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,172 +23,20 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of miscellaneous unicode codepoints that are not encoded
- var codepoints = [];
-
- for (var i = 0x80; i < 0x4ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
- }
-
- for (i = 0x2000; i < 0x23ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
- }
-
- for (i = 0x2460; i < 0x26ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
- }
-
- for (i = 0x3000; i < 0x33ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
- }
-
- for (i = 0xff00; i < 0xffef; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(document.getElementsByTagName("form"));
- inputs = Array.prototype.slice.call(document.getElementsByTagName("input"));
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesMisc;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+// Overwrite normalizeStr
+function normalizeStr(str) {
+ return str;
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html
index fd037d19ad5..2fc7bb22350 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html
@@ -4,8 +4,16 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (form, pua)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,132 +26,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // set up a simple array of miscellaneous unicode codepoints that are not encoded
- var codepoints = [];
-
- for (i = 0xe000; i < 0xf8ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "pua ";
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- item.desc = codepoints[i].desc;
- currentTests.push(
- async_test(
- item.desc +
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(results[j], cplist[i][j].expected);
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesPua;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html
index 79d297529f0..684dc5234cd 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html
@@ -4,8 +4,24 @@
<meta charset="x-x-big5"> <!-- test breaks if the server overrides this -->
<title>x-x-big5 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -17,133 +33,17 @@
</style>
</head>
<body>
-
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0x2a6df; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "x-x-big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = big5Encoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html
index b374fe52288..2d7203107d2 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html
@@ -4,8 +4,24 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding (form)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
@@ -18,131 +34,16 @@
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
<script>
-var tests = [];
-var cplist = [];
-var numTests = null;
-var numFrames = 2;
-var chunkSize = 500;
-var numChunks = null;
-var frames = null;
-var frames = null;
-var forms = null;
-var seperator = ",";
-var encodedSeperator = encodeURIComponent(",");
-var currentChunkIndex = 0;
-
-setup(function() {
- // create a simple list of just those code points for which there is an encoding possible
- codepoints = [];
- for (var i = 0x80; i < 0x2a6df; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
- }
-
- // convert the information into a simple array of objects that can be easily traversed
- var currentChunk = [];
- var currentTests = [];
- cplist = [currentChunk];
- tests = [currentTests];
- for (i = 0; i < codepoints.length; i++) {
- if (currentChunk.length == chunkSize) {
- currentChunk = [];
- cplist.push(currentChunk);
- currentTests = [];
- tests.push(currentTests);
- }
- var item = {};
- currentChunk.push(item);
- item.cp = codepoints[i].cp;
- item.expected = codepoints[i].expected;
- currentTests.push(
- async_test(
- "U+" +
- item.cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(item.cp) +
- " " +
- item.expected
- )
- );
- }
-
- numChunks = cplist.length;
-
- for (var i = 0; i < numFrames; i++) {
- var frame = document.createElement("iframe");
- frame.id = frame.name = "frame-" + i;
- document.body.appendChild(frame);
- var form = document.createElement("form");
- form.id = "form-" + i;
- form.method = "GET";
- form.action = "/common/blank.html";
- form.acceptCharset = "big5";
- form.target = frame.id;
- var input = document.createElement("input");
- input.id = input.name = "input-" + i;
- form.appendChild(input);
- document.body.appendChild(form);
- }
-
- addEventListener("load", function() {
- frames = Array.prototype.slice.call(
- document.getElementsByTagName("iframe")
- );
- forms = Array.prototype.slice.call(
- document.getElementsByTagName("form")
- );
- inputs = Array.prototype.slice.call(
- document.getElementsByTagName("input")
- );
- for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
- runNext(i);
- }
- });
-});
-
-function runNext(id) {
- var i = currentChunkIndex;
- currentChunkIndex += 1;
-
- var iframe = frames[id];
- var form = forms[id];
- var input = inputs[id];
-
- input.value = cplist[i]
- .map(function(x) {
- return String.fromCodePoint(x.cp);
- })
- .join(seperator);
- form.submit();
-
- iframe.onload = function() {
- var url = iframe.contentWindow.location;
- var query = url.search;
- var result_string = query.substr(query.indexOf("=") + 1);
- var results = result_string.split(encodedSeperator);
-
- for (var j = 0; j < cplist[i].length; j++) {
- var t = tests[i][j];
- t.step(function() {
- assert_equals(
- normalizeStr(results[j]),
- normalizeStr(cplist[i][j].expected)
- );
- });
- t.done();
- }
- if (currentChunkIndex < numChunks) {
- runNext(id);
- }
- };
+var errors = false;
+var encoder = big5Encoder;
+var ranges = rangesAll;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
}
</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html
index c538cf4e23e..84d8b2dcb36 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html
@@ -4,97 +4,56 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (href, han)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-11000">
+<meta name="variant" content="?11001-12000">
+<meta name="variant" content="?12001-13000">
+<meta name="variant" content="?13001-14000">
+<meta name="variant" content="?14001-15000">
+<meta name="variant" content="?15001-16000">
+<meta name="variant" content="?16001-17000">
+<meta name="variant" content="?17001-18000">
+<meta name="variant" content="?18001-19000">
+<meta name="variant" content="?19001-20000">
+<meta name="variant" content="?20001-21000">
+<meta name="variant" content="?21001-22000">
+<meta name="variant" content="?22001-23000">
+<meta name="variant" content="?23001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#big5">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the gbk encoding.">
-<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// create a simple list of just those code points for which there is no encoding is possible, from a representative subset of the BMP
-codepoints = [];
-
-for (i = 0x4e00; i < 0x9fba; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "cjk ";
- }
-}
-
-for (i = 0xf900; i < 0xfa6e; i++) {
- // compatibility
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
-}
-
-for (i = 0xfa70; i < 0xfada; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "compatibility ";
- }
-}
-
-for (i = 0x3400; i < 0x4dbf; i++) {
- // cjk extension A
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "extension A ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
-</script>
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
+<script>
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesHan;
+var separator = ",";
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+</script>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
+
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html
index 48a23f06ab0..d8254478786 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html
@@ -4,62 +4,43 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (href, hangul)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-8000">
+<meta name="variant" content="?8001-9000">
+<meta name="variant" content="?9001-10000">
+<meta name="variant" content="?10001-10000">
+<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#big5">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the gbk encoding.">
-<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// create a simple list of just those code points for which there is no encoding is possible, from a representative subset of the BMP
-codepoints = [];
-
-for (i = 0xac00; i < 0xd7af; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "hangul ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
-</script>
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
+<script>
+var errors = true;
+var encoder = big5Encoder;
+var ranges = rangesHangul;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+</script>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
+
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html
index 0ff27f4f120..1a212d63b97 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html
@@ -4,105 +4,34 @@
<meta charset="big5"> <!-- test breaks if the server overrides this -->
<title>Big5 encoding errors (href, misc)</title>
<meta name="timeout" content="long">
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#big5">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the gbk encoding.">
-<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(result, expected);
- }, desc);
-}
-
-// create a simple list of just those code points for which there is no encoding is possible, from a representative subset of the BMP
-codepoints = [];
-
-for (var i = 0x80; i < 0x4ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "latin, greek, cyrillic, etc ";
- }
-}
-for (i = 0x2000; i < 0x23ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "punctuation, currency, symbols ";
- }
-}
-
-for (i = 0x2460; i < 0x26ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "enclosed chars and boxes ";
- }
-}
-
-for (i = 0x3000; i < 0x33ff; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "various asian ";
- }
-}
-
-for (i = 0xff00; i < 0xffef; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (!result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%26%23" + item.cp + "%3B";
- item.desc = "half/full width ";
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- codepoints[x].desc +
- " U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
-</script>
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
+<script>
+var errors = true;
+var encoder = eucjpEncoder;
+var ranges = rangesMisc;
+function expect(result, codepoint) {
+ return "%26%23" + codepoint + "%3B";
+}
+</script>
+<script src="../../resources/encode-form-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html
index fb8824c2151..c7a23d8a931 100644
--- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html
+++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html
@@ -4,59 +4,38 @@
<meta name="timeout" content="long">
<title>Big5 encoding (href)</title>
<meta charset="big5"> <!-- test breaks if the server overrides this -->
+<meta name="variant" content="?1-1000">
+<meta name="variant" content="?1001-2000">
+<meta name="variant" content="?2001-3000">
+<meta name="variant" content="?3001-4000">
+<meta name="variant" content="?4001-5000">
+<meta name="variant" content="?5001-6000">
+<meta name="variant" content="?6001-7000">
+<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/subset-tests.js"></script>
<script src="big5_index.js"></script>
<script src="big5-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#big5">
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the big5 encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification.">
-<script>
-function encode(input, expected, desc) {
- // tests whether a Unicode character is converted to an equivalent byte sequence by href
- // input: a Unicode character
- // expected: expected byte sequence
- // desc: what's being tested
- test(function() {
- var a = document.createElement("a"); // <a> uses document encoding for URL's query
- a.href = "https://example.com/?" + input;
- result = a.search.substr(1); // remove leading "?"
- assert_equals(normalizeStr(result), normalizeStr(expected));
- }, desc);
-}
-
-// create a simple list of just those code points for which there is an encoding possible
-codepoints = [];
-for (var i = 0x80; i < 0x2a6df; i++) {
- result = big5Encoder(String.fromCodePoint(i));
- if (result) {
- var item = {};
- codepoints.push(item);
- item.cp = i;
- item.expected = "%" + result.replace(/ /g, "%");
- }
-}
-
-// run the tests
-for (var x = 0; x < codepoints.length; x++) {
- encode(
- String.fromCodePoint(codepoints[x].cp),
- codepoints[x].expected,
- "U+" +
- codepoints[x].cp.toString(16).toUpperCase() +
- " " +
- String.fromCodePoint(codepoints[x].cp) +
- " " +
- codepoints[x].expected
- );
-}
-
-// NOTES
-// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
-// the test excludes ASCII characters
-</script>
+<style>
+ iframe { display:none }
+ form { display:none }
+</style>
</head>
<body>
<div id="log"></div>
+<script src="../../resources/ranges.js"></script>
+<script>
+var errors = false;
+var encoder = big5Encoder;
+var ranges = rangesAll;
+function expect(result, codepoint) {
+ return "%" + result.replace(/ /g, "%");
+}
+</script>
+<script src="../../resources/encode-href-common.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/encoding/resources/decode-common.js b/tests/wpt/web-platform-tests/encoding/resources/decode-common.js
new file mode 100644
index 00000000000..19dd6939ac1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding/resources/decode-common.js
@@ -0,0 +1,40 @@
+var tests = [];
+
+function iframeRef(frameRef) {
+ return frameRef.contentWindow
+ ? frameRef.contentWindow.document
+ : frameRef.contentDocument;
+}
+
+function showNodes(decoder) {
+ var iframe = iframeRef(document.getElementById("scrwin"));
+ nodes = iframe.querySelectorAll("span");
+
+ for (var i = 0; i < nodes.length; i++) {
+ var test = subsetTest(async_test,
+ "U+" +
+ nodes[i].dataset.cp +
+ " " +
+ String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) +
+ " " +
+ decoder(nodes[i].dataset.bytes) +
+ " " +
+ nodes[i].dataset.bytes
+ );
+ if (test) {
+ tests[i] = test;
+ }
+ }
+
+ for (var i = 0; i < nodes.length; i++) {
+ if (tests[i]) {
+ tests[i].step(function() {
+ assert_equals(
+ nodes[i].textContent,
+ decoder(nodes[i].dataset.bytes)
+ );
+ });
+ tests[i].done();
+ }
+ }
+}
diff --git a/tests/wpt/web-platform-tests/encoding/resources/encode-form-common.js b/tests/wpt/web-platform-tests/encoding/resources/encode-form-common.js
new file mode 100644
index 00000000000..6f8777b39b9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding/resources/encode-form-common.js
@@ -0,0 +1,140 @@
+// These are defined by the test:
+// errors (boolean)
+// encoder (function)
+// ranges (array)
+// separator (string)
+// expect (function)
+
+var tests = [];
+var cplist = [];
+var numTests = null;
+var numFrames = 2;
+var chunkSize = 400;
+var numChunks = null;
+var frames = null;
+var frames = null;
+var forms = null;
+var encodedSeparator = encodeURIComponent(separator);
+var currentChunkIndex = 0;
+var pageCharset = document.querySelector("meta[charset]").getAttribute("charset");
+
+setup(function() {
+ // create a simple list of just those code points for which there is an encoding possible
+ codepoints = [];
+ for (var range of ranges) {
+ for (var i = range[0]; i < range[1]; i++) {
+ result = encoder(String.fromCodePoint(i));
+ var success = !!result;
+ if (errors) {
+ success = !success;
+ }
+ if (success) {
+ var item = {};
+ codepoints.push(item);
+ item.cp = i;
+ item.expected = expect(result, i);
+ item.desc = range[2];
+ }
+ }
+ }
+
+ // convert the information into a simple array of objects that can be easily traversed
+ var currentChunk = [];
+ var currentTests = [];
+ cplist = [currentChunk];
+ tests = [currentTests];
+ for (i = 0; i < codepoints.length; i++) {
+ if (currentChunk.length == chunkSize) {
+ currentChunk = [];
+ cplist.push(currentChunk);
+ currentTests = [];
+ tests.push(currentTests);
+ }
+ var item = {};
+ currentChunk.push(item);
+ item.cp = codepoints[i].cp;
+ item.expected = codepoints[i].expected;
+ item.desc = codepoints[i].desc;
+ currentTests.push(subsetTest(async_test,
+ (item.desc ? item.desc + " " : "") +
+ "U+" +
+ item.cp.toString(16).toUpperCase() +
+ " " +
+ String.fromCodePoint(item.cp) +
+ " " +
+ item.expected
+ ));
+ }
+
+ numChunks = cplist.length;
+
+ for (var i = 0; i < numFrames; i++) {
+ var frame = document.createElement("iframe");
+ frame.id = frame.name = "frame-" + i;
+ document.body.appendChild(frame);
+ var form = document.createElement("form");
+ form.id = "form-" + i;
+ form.method = "GET";
+ form.action = "/common/blank.html";
+ form.acceptCharset = pageCharset;
+ form.target = frame.id;
+ var input = document.createElement("input");
+ input.id = input.name = "input-" + i;
+ form.appendChild(input);
+ document.body.appendChild(form);
+ }
+
+ addEventListener("load", function() {
+ frames = Array.prototype.slice.call(
+ document.getElementsByTagName("iframe")
+ );
+ forms = Array.prototype.slice.call(
+ document.getElementsByTagName("form")
+ );
+ inputs = Array.prototype.slice.call(
+ document.getElementsByTagName("input")
+ );
+ for (var i = 0; i < Math.min(numFrames, numChunks); i++) {
+ runNext(i);
+ }
+ });
+});
+
+function runNext(id) {
+ var i = currentChunkIndex;
+ currentChunkIndex += 1;
+
+ var iframe = frames[id];
+ var form = forms[id];
+ var input = inputs[id];
+
+ input.value = cplist[i]
+ .map(function(x) {
+ return String.fromCodePoint(x.cp);
+ })
+ .join(separator);
+ form.submit();
+
+ iframe.onload = function() {
+ var url = iframe.contentWindow.location;
+ var query = url.search;
+ var result_string = query.substr(query.indexOf("=") + 1);
+ var results = result_string.split(encodedSeparator);
+
+ for (var j = 0; j < cplist[i].length; j++) {
+ var t = tests[i][j];
+ if (t) {
+ t.step(function() {
+ assert_equals(
+ normalizeStr(results[j]),
+ normalizeStr(cplist[i][j].expected)
+ );
+ });
+ t.done();
+ }
+ }
+ if (currentChunkIndex < numChunks) {
+ runNext(id);
+ }
+ };
+}
diff --git a/tests/wpt/web-platform-tests/encoding/resources/encode-href-common.js b/tests/wpt/web-platform-tests/encoding/resources/encode-href-common.js
new file mode 100644
index 00000000000..dc646fe8c16
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding/resources/encode-href-common.js
@@ -0,0 +1,57 @@
+// These are defined by the test:
+// errors (boolean)
+// encoder (function)
+// ranges (array)
+// expect (function)
+
+function encode(input, expected, desc) {
+ // tests whether a Unicode character is converted to an equivalent byte sequence by href
+ // input: a Unicode character
+ // expected: expected byte sequence
+ // desc: what's being tested
+ subsetTest(test, function() {
+ var a = document.createElement("a"); // <a> uses document encoding for URL's query
+ a.href = "https://example.com/?" + input;
+ result = a.search.substr(1); // remove leading "?"
+ assert_equals(normalizeStr(result), normalizeStr(expected));
+ }, desc);
+}
+
+// set up a simple array of unicode codepoints that are not encoded
+var codepoints = [];
+
+for (var range of ranges) {
+ for (var i = range[0]; i < range[1]; i++) {
+ result = encoder(String.fromCodePoint(i));
+ var success = !!result;
+ if (errors) {
+ success = !success;
+ }
+ if (success) {
+ var item = {};
+ codepoints.push(item);
+ item.cp = i;
+ item.expected = expect(result, i);
+ item.desc = range[2] ? range[2] + " " : "";
+ }
+ }
+}
+
+// run the tests
+for (var x = 0; x < codepoints.length; x++) {
+ encode(
+ String.fromCodePoint(codepoints[x].cp),
+ codepoints[x].expected,
+ codepoints[x].desc +
+ " U+" +
+ codepoints[x].cp.toString(16).toUpperCase() +
+ " " +
+ String.fromCodePoint(codepoints[x].cp) +
+ " " +
+ codepoints[x].expected
+ );
+}
+
+// NOTES
+// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers
+// the tests exclude ASCII characters
diff --git a/tests/wpt/web-platform-tests/encoding/resources/ranges.js b/tests/wpt/web-platform-tests/encoding/resources/ranges.js
new file mode 100644
index 00000000000..81dc711fc7a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding/resources/ranges.js
@@ -0,0 +1,28 @@
+var rangesHan = [
+ [0x4e00, 0x9fba, "cjk"],
+ [0xf900, 0xfa6e, "compatibility"],
+ [0xfa70, 0xfada, "compatibility"],
+ [0x3400, 0x4dbf, "extension A"],
+];
+var rangesHangul = [
+ [0xac00, 0xd7af, "hangul"],
+];
+var rangesMisc = [
+ [0x80, 0x4ff, "latin, greek, cyrillic, etc"],
+ [0x2000, 0x23ff, "punctuation, currency, symbols"],
+ [0x2460, 0x26ff, "enclosed chars and boxes"],
+ [0x3000, 0x33ff, "various asian"],
+ [0xff00, 0xffef, "half/full width"],
+];
+var rangesAll = [
+ [0x80, 0xffff],
+];
+var rangesExtBa = [
+ [0x20000, 0x2536b, "extB (pt 1)"],
+];
+var rangesExtBb = [
+ [0x2536b, 0x2a6e0, "extB (pt 2)"],
+];
+var rangesPua = [
+ [0xe000, 0xf8ff, "pua"],
+];
diff --git a/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html b/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html
index 1833fdad8b1..70d8fb73ead 100644
--- a/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html
+++ b/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html
@@ -1,5 +1,8 @@
<!doctype html>
<meta name=timeout content=long>
+<meta name="variant" content="?XMLHttpRequest">
+<meta name="variant" content="?TextDecoder">
+<meta name="variant" content="?document">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=resources/encodings.js></script>
@@ -62,38 +65,49 @@
}
}
+ var subsetTest = "";
+ if (location.search) {
+ subsetTest = location.search.substr(1);
+ }
+
// Setting up all the tests
for(var i = 0, l = singleByteEncodings.length; i < l; i++) {
var encoding = singleByteEncodings[i]
for(var ii = 0, ll = encoding.labels.length; ii < ll; ii++) {
var label = encoding.labels[ii]
- async_test(function(t) {
- var xhr = new XMLHttpRequest,
- name = encoding.name // need scoped variable
- xhr.open("GET", "resources/single-byte-raw.py?label=" + label)
- xhr.send(null)
- xhr.onload = t.step_func_done(function() { assert_decode(xhr.responseText, name) })
- }, encoding.name + ": " + label + " (XMLHttpRequest)")
+ if (subsetTest == "XMLHttpRequest" || !subsetTest) {
+ async_test(function(t) {
+ var xhr = new XMLHttpRequest,
+ name = encoding.name // need scoped variable
+ xhr.open("GET", "resources/single-byte-raw.py?label=" + label)
+ xhr.send(null)
+ xhr.onload = t.step_func_done(function() { assert_decode(xhr.responseText, name) })
+ }, encoding.name + ": " + label + " (XMLHttpRequest)")
+ }
- test(function() {
- var d = new TextDecoder(label),
- data = d.decode(view)
- assert_equals(d.encoding, encoding.name.toLowerCase()) // ASCII names only, so safe
- assert_decode(data, encoding.name)
- }, encoding.name + ": " + label + " (TextDecoder)")
+ if (subsetTest == "TextDecoder" || !subsetTest) {
+ test(function() {
+ var d = new TextDecoder(label),
+ data = d.decode(view)
+ assert_equals(d.encoding, encoding.name.toLowerCase()) // ASCII names only, so safe
+ assert_decode(data, encoding.name)
+ }, encoding.name + ": " + label + " (TextDecoder)")
+ }
- async_test(function(t) {
- var frame = document.createElement("iframe"),
- name = encoding.name;
- frame.src = "resources/text-plain-charset.py?label=" + label
- frame.onload = t.step_func_done(function() {
- assert_equals(frame.contentDocument.characterSet, name)
- assert_equals(frame.contentDocument.inputEncoding, name)
- })
- t.add_cleanup(function() { document.body.removeChild(frame) })
- document.body.appendChild(frame)
- }, encoding.name + ": " + label + " (document.characterSet and document.inputEncoding)")
+ if (subsetTest == "document" || !subsetTest) {
+ async_test(function(t) {
+ var frame = document.createElement("iframe"),
+ name = encoding.name;
+ frame.src = "resources/text-plain-charset.py?label=" + label
+ frame.onload = t.step_func_done(function() {
+ assert_equals(frame.contentDocument.characterSet, name)
+ assert_equals(frame.contentDocument.inputEncoding, name)
+ })
+ t.add_cleanup(function() { document.body.removeChild(frame) })
+ document.body.appendChild(frame)
+ }, encoding.name + ": " + label + " (document.characterSet and document.inputEncoding)")
+ }
}
}
</script>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html
new file mode 100644
index 00000000000..80cf75104fc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<meta charset={{GET[encoding]}}> <!-- ends up as <meta charset> by default which is windows-1252 -->
+<meta name=variant content="?encoding=x-cp1251">
+<meta name=variant content="?encoding=utf8">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src="/common/utils.js"></script>
+<link rel=help href=https://html.spec.whatwg.org/multipage/#following-hyperlinks>
+<link rel=help href=https://html.spec.whatwg.org/multipage/#hyperlink-auditing>
+<link rel=help href=https://html.spec.whatwg.org/multipage/#attr-meta-http-equiv-refresh>
+<div id=log></div>
+<script>
+function expected(encoding) {
+ return {
+ "UTF-8": "%C3%BF",
+ "windows-1251": "%26%23255%3B",
+ "windows-1252": "%FF"
+ }[encoding];
+}
+var encoding = document.characterSet;
+var blank = 'resources/blank.py?encoding=' + encoding;
+var stash_put = 'resources/stash.py?q=\u00FF&action=put&id=';
+var stash_take = 'resources/stash.py?action=take&id=';
+var input_url_html = 'resources/resource.py?q=\u00FF&encoding=' + encoding + '&type=html';
+var expected_current = expected(encoding);
+var expected_utf8 = expected('UTF-8');
+
+function assert_ends_with(input, endsWith) {
+ assert_true(input.endsWith(endsWith), input + " did not end with " + endsWith);
+}
+
+
+function poll_for_stash(test_obj, uuid, expected) {
+ var start = new Date();
+ var poll = test_obj.step_func(function () {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', stash_take + uuid);
+ xhr.onload = test_obj.step_func(function(e) {
+ if (xhr.response == "") {
+ if (new Date() - start > 10000) {
+ // If we set the status to TIMEOUT here we avoid a race between the
+ // page and the test timing out
+ test_obj.force_timeout();
+ }
+ test_obj.step_timeout(poll, 200);
+ } else {
+ assert_equals(xhr.response, expected);
+ test_obj.done();
+ }
+ });
+ xhr.send();
+ })
+ test_obj.step_timeout(poll, 200);
+}
+
+function setup_navigation(elm, iframe, id, test_obj) {
+ iframe.name = id;
+ elm.target = id;
+ elm.setAttribute('href', input_url_html);
+ document.body.appendChild(iframe);
+ document.body.appendChild(elm);
+ test_obj.add_cleanup(function() {
+ document.body.removeChild(iframe);
+ document.body.removeChild(elm);
+ });
+}
+
+// follow hyperlink
+function test_follow_link(tag) {
+ async_test(function() {
+ var elm = document.createElement(tag);
+ var iframe = document.createElement('iframe');
+ setup_navigation(elm, iframe, 'test_follow_link_'+tag, this);
+ iframe.onload = this.step_func_done(function() { // when the page navigated to has loaded
+ assert_equals(iframe.contentDocument.body.textContent, expected_current);
+ });
+ // follow the hyperlink
+ elm.click();
+ // check that navigation succeeded by ...??? XXX
+ }, 'follow hyperlink <'+tag+' href>');
+}
+
+'a, area, link'.split(', ').forEach(function(str) {
+ test_follow_link(str);
+});
+
+// follow hyperlink with ping attribute
+function test_follow_link_ping(tag) {
+ async_test(function() {
+ var uuid = token();
+ var elm = document.createElement(tag);
+ // check if ping is supported
+ assert_true('ping' in elm, 'ping not supported');
+ elm.setAttribute('ping', stash_put + uuid);
+ var iframe = document.createElement('iframe');
+ setup_navigation(elm, iframe, 'test_follow_link_ping_'+tag, this);
+ // follow the hyperlink
+ elm.click();
+ // check that navigation succeeded by ...??? XXX
+ // check that the right URL was requested for the ping
+ poll_for_stash(this, uuid, expected_current);
+ }, 'hyperlink auditing <'+tag+' ping>');
+}
+
+'a, area'.split(', ').forEach(function(str) {
+ test_follow_link_ping(str);
+});
+
+// navigating with meta refresh
+async_test(function() {
+ var iframe = document.createElement('iframe');
+ iframe.src = blank;
+ document.body.appendChild(iframe);
+ this.add_cleanup(function() {
+ document.body.removeChild(iframe);
+ });
+ iframe.onload = this.step_func_done(function() {
+ var doc = iframe.contentDocument;
+ var got = doc.body.textContent;
+ if (got == '') {
+ doc.write('<meta http-equiv=refresh content="0; URL='+input_url_html+'">REFRESH');
+ doc.close();
+ return;
+ }
+ assert_equals(got, expected_current);
+ });
+}, 'meta refresh');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js
index c6db2facf5f..cf175eb4d3a 100644
--- a/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js
+++ b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js
@@ -26,105 +26,6 @@ onload = function() {
return 'expected substring '+expected+' got '+got;
}
- function poll_for_stash(test_obj, uuid, expected) {
- var start = new Date();
- var poll = test_obj.step_func(function () {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', stash_take + uuid);
- xhr.onload = test_obj.step_func(function(e) {
- if (xhr.response == "") {
- if (new Date() - start > 10000) {
- // If we set the status to TIMEOUT here we avoid a race between the
- // page and the test timing out
- test_obj.force_timeout();
- }
- test_obj.step_timeout(poll, 200);
- } else {
- assert_equals(xhr.response, expected);
- test_obj.done();
- }
- });
- xhr.send();
- })
- test_obj.step_timeout(poll, 200);
- }
-
- function setup_navigation(elm, iframe, id, test_obj) {
- iframe.name = id;
- elm.target = id;
- elm.setAttribute('href', input_url_html);
- document.body.appendChild(iframe);
- document.body.appendChild(elm);
- test_obj.add_cleanup(function() {
- document.body.removeChild(iframe);
- document.body.removeChild(elm);
- });
- }
-
- // follow hyperlink
- function test_follow_link(tag) {
- async_test(function() {
- var elm = document.createElement(tag);
- var iframe = document.createElement('iframe');
- setup_navigation(elm, iframe, 'test_follow_link_'+tag, this);
- iframe.onload = this.step_func_done(function() { // when the page navigated to has loaded
- assert_equals(iframe.contentDocument.body.textContent, expected_current);
- });
- // follow the hyperlink
- elm.click();
- // check that navigation succeeded by ...??? XXX
- }, 'follow hyperlink <'+tag+' href>',
- {help:'https://html.spec.whatwg.org/multipage/#following-hyperlinks'});
- }
-
- 'a, area, link'.split(', ').forEach(function(str) {
- test_follow_link(str);
- });
-
- // follow hyperlink with ping attribute
- function test_follow_link_ping(tag) {
- async_test(function() {
- var uuid = token();
- var elm = document.createElement(tag);
- // check if ping is supported
- assert_true('ping' in elm, 'ping not supported');
- elm.setAttribute('ping', stash_put + uuid);
- var iframe = document.createElement('iframe');
- setup_navigation(elm, iframe, 'test_follow_link_ping_'+tag, this);
- // follow the hyperlink
- elm.click();
- // check that navigation succeeded by ...??? XXX
- // check that the right URL was requested for the ping
- poll_for_stash(this, uuid, expected_current);
- }, 'hyperlink auditing <'+tag+' ping>',
- {help:'https://html.spec.whatwg.org/multipage/#hyperlink-auditing'});
- }
-
- 'a, area'.split(', ').forEach(function(str) {
- test_follow_link_ping(str);
- });
-
- // navigating with meta refresh
- async_test(function() {
- var iframe = document.createElement('iframe');
- iframe.src = blank;
- document.body.appendChild(iframe);
- this.add_cleanup(function() {
- document.body.removeChild(iframe);
- });
- iframe.onload = this.step_func_done(function() {
- var doc = iframe.contentDocument;
- var got = doc.body.textContent;
- if (got == '') {
- doc.write('<meta http-equiv=refresh content="0; URL='+input_url_html+'">REFRESH');
- doc.close();
- return;
- }
- assert_equals(got, expected_current);
- });
- }, 'meta refresh',
- {help:'https://html.spec.whatwg.org/multipage/#attr-meta-http-equiv-refresh'});
-
// loading html (or actually svg to support <embed>)
function test_load_nested_browsing_context(tag, attr, spec_url) {
async_test(function() {
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/hidden-attr.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/hidden-attr.html
new file mode 100644
index 00000000000..d9143447054
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/hidden-attr.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<title>UA style for hidden attribute on table elements</title>
+<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#tables-2">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<table hidden></table>
+<table><caption hidden></caption></table>
+<table><colgroup hidden></table>
+<table><col hidden></table>
+<table><thead hidden></table>
+<table><tbody hidden></table>
+<table><tfoot hidden></table>
+<table><tr hidden></table>
+<table><tr><td hidden></table>
+<table><tr><th hidden></table>
+<script>
+const expectedDisplay = {
+ 'table': 'none',
+ 'caption': 'none',
+ 'colgroup': 'table-column-group',
+ 'col': 'table-column',
+ 'thead': 'table-header-group',
+ 'tbody': 'table-row-group',
+ 'tfoot': 'table-footer-group',
+ 'tr': 'table-row',
+ 'td': 'table-cell',
+ 'th': 'table-cell',
+};
+for (const el of document.querySelectorAll("[hidden]")) {
+ test(function() {
+ const style = getComputedStyle(el);
+ assert_equals(style.display, expectedDisplay[el.localName]);
+ if (el instanceof HTMLTableElement ||
+ el instanceof HTMLTableCaptionElement) {
+ assert_equals(style.visibility, 'visible');
+ } else {
+ assert_equals(style.visibility, 'collapse');
+ }
+ }, `Computed display and visibility of ${el.localName}`);
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/resources/test_page.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/resources/test_page.html
deleted file mode 100644
index 856183450e9..00000000000
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/resources/test_page.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<!doctype html>
-<title> An empty test page </title>
-<p> This is test page </p>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html
deleted file mode 100644
index 1e8f018fc49..00000000000
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!doctype html>
-<html>
-<head>
- <title>
- &lt;embed&gt;'s browsing context is discarded on 'src' attribute change.
- </title>
- <link rel="author" title="Ehsan Karamad" href="ekaramad@chromium.org">
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
-</head>
-<body>
- <script>
- let url1 = "../resources/test_page.html";
- let url2 = "../resources/should-load.html";
- function onLoadPromise(el) {
- return new Promise((resolve) => {
- function onLoad() {
- resolve();
- el.removeEventListener("load", onLoad);
- }
- el.addEventListener("load", onLoad);
- });
- }
-
- promise_test(async() => {
- let old_windows = [];
-
- let embed = document.createElement("embed");
- embed.type = "text/html";
- embed.src = url1;
- let onEmbedLoad = onLoadPromise(embed);
- document.body.appendChild(embed);
- await onEmbedLoad;
- old_windows.push(window[0]);
- assert_equals(
- window[0].frameElement,
- embed,
- "<embed> is attached and loaded with html content.");
-
- let iframe = document.createElement("iframe");
- iframe.src = url1;
- let onIframeLoad = onLoadPromise(iframe);
- document.body.appendChild(iframe);
- await onIframeLoad;
- old_windows.push(window[1]);
- assert_equals(
- window[1].frameElement,
- iframe,
- "<iframe> is attached and loaded with html content after <embed>.");
- assert_equals(
- window[0],
- old_windows[0],
- "The first window is that of <embed>'s frame.");
-
- // Now navigate the embed element again.
- onEmbedLoad = onLoadPromise(embed);
- embed.src = url2;
- await onEmbedLoad;
- assert_equals(
- window[0].frameElement,
- iframe,
- "<embed>'s previous frame must have been destroyed.");
-
- assert_equals(
- window[1].frameElement,
- embed,
- "<embed>'s new window should be appended after navigation.");
-
- assert_not_equals(
- old_windows[0],
- window[1],
- "The old window and new window are different for <embed>.");
-
- assert_equals(
- old_windows[1],
- window[0],
- "The old and new window are the same for <iframe>.");
- }, "Verify that changing 'src' attribute of an <embed> element discards" +
- " the old browsing context and creates a new browsing context.");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html
index b0875ec6b91..feb876608ac 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html
@@ -10,25 +10,15 @@
<body>
<iframe sandbox="allow-top-navigation allow-scripts"></iframe>
<script>
- if (opener) {
- // We're the popup (i.e. a top frame). Load into the iframe the page
- // trying to modifying the top frame and transmit the result to our
- // opener.
- onmessage = function(e) {
- opener.postMessage(e.data, "*")
- }
- document.querySelector("iframe").src = "support/iframe-that-performs-top-navigation-on-popup.html";
- } else {
- // We are the main test page. Open ourselves as a popup, so that we can
- // can experiment navigation of the top frame.
- async_test(t => {
- window.addEventListener("message", t.step_func_done(e => {
- assert_equals(e.data, "can navigate");
- e.source.close();
- }));
- window.open(location.href);
- }, "Frames with `allow-top-navigation` should be able to navigate the top frame.");
- }
+ // We are the main test page. Open a popup, so that we can
+ // can experiment navigation of the top frame.
+ async_test(t => {
+ window.addEventListener("message", t.step_func_done(e => {
+ assert_equals(e.data, "can navigate");
+ e.source.close();
+ }));
+ window.open("support/load-into-the-iframe.html");
+ }, "Frames with `allow-top-navigation` should be able to navigate the top frame.");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html
index 6113c6c3478..bd7d92c0ddc 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html
@@ -8,27 +8,16 @@
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
- <iframe sandbox="allow-scripts"></iframe>
<script>
- if (opener) {
- // We're the popup (i.e. a top frame). Load into the iframe the page
- // trying to modifying the top frame and transmit the result to our
- // opener.
- onmessage = function(e) {
- opener.postMessage(e.data, "*")
- }
- document.querySelector("iframe").src = "support/iframe-that-performs-top-navigation-on-popup.html";
- } else {
- // We are the main test page. Open ourselves as a popup, so that we can
- // can experiment navigation of the top frame.
- async_test(t => {
- window.addEventListener("message", t.step_func_done(e => {
- assert_equals(e.data, "cannot navigate");
- e.source.close();
- }));
- window.open(location.href);
- }, "Frames without `allow-top-navigation` should not be able to navigate the top frame.");
- }
+ // We are the main test page. Open a popup, so that we can
+ // can experiment navigation of the top frame.
+ async_test(t => {
+ window.addEventListener("message", t.step_func_done(e => {
+ assert_equals(e.data, "cannot navigate");
+ e.source.close();
+ }));
+ window.open('support/load-into-the-iframe.html');
+ }, "Frames without `allow-top-navigation` should not be able to navigate the top frame.");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html
index 9de5d53466e..c7c56d670e5 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html
@@ -14,25 +14,15 @@
error: allow-top-navigation-by-user-activation will have no effect. -->
<iframe sandbox="allow-top-navigation allow-top-navigation-by-user-activation allow-scripts"></iframe>
<script>
- if (opener) {
- // We're the popup (i.e. a top frame). Load into the iframe the page
- // trying to modifying the top frame and transmit the result to our
- // opener.
- onmessage = function(e) {
- opener.postMessage(e.data, "*")
- }
- document.querySelector("iframe").src = "support/iframe-that-performs-top-navigation-on-popup.html";
- } else {
- // We are the main test page. Open ourselves as a popup, so that we can
- // can experiment navigation of the top frame.
- async_test(t => {
- window.addEventListener("message", t.step_func_done(e => {
- assert_equals(e.data, "can navigate");
- e.source.close();
- }));
- window.open(location.href);
- }, "Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set.");
- }
+ // We are the main test page. Open a popup, so that we can
+ // can experiment navigation of the top frame.
+ async_test(t => {
+ window.addEventListener("message", t.step_func_done(e => {
+ assert_equals(e.data, "can navigate");
+ e.source.close();
+ }));
+ window.open("support/load-into-the-iframe.html");
+ }, "Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set.");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html
new file mode 100644
index 00000000000..05a80be7374
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html
@@ -0,0 +1,19 @@
+
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ </head>
+ <body>
+ <iframe sandbox="allow-scripts"></iframe>
+ <script>
+ // We're the popup (i.e. a top frame). Load into the iframe the page
+ // trying to modifying the top frame and transmit the result to our
+ // opener.
+ onmessage = function(e) {
+ opener.postMessage(e.data, "*")
+ }
+ document.querySelector("iframe").src = "iframe-that-performs-top-navigation-on-popup.html";
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html
deleted file mode 100644
index 6d114c46cf1..00000000000
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!doctype html>
-<html>
-<head>
- <title>
- &lt;object&gt;'s browsing context is discarded on 'data' attribute change.
- </title>
- <link rel="author" title="Ehsan Karamad" href="ekaramad@chromium.org">
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
-</head>
-<body>
- <script>
- let url1 = "../resources/test_page.html";
- let url2 = "../resources/should-load.html";
- function onLoadPromise(el) {
- return new Promise((resolve) => {
- function onLoad() {
- resolve();
- el.removeEventListener("load", onLoad);
- }
- el.addEventListener("load", onLoad);
- });
- }
-
- promise_test(async() => {
- let old_windows = [];
-
- let object = document.createElement("object");
- object.type = "text/html";
- object.data = url1;
- let onObjectLoad = onLoadPromise(object);
- document.body.appendChild(object);
- await onObjectLoad;
- old_windows.push(window[0]);
- assert_equals(
- window[0].frameElement,
- object,
- "<object> is attached and loaded with html content.");
-
- let iframe = document.createElement("iframe");
- iframe.src = url1;
- let onIframeLoad = onLoadPromise(iframe);
- document.body.appendChild(iframe);
- await onIframeLoad;
- old_windows.push(window[1]);
- assert_equals(
- window[1].frameElement,
- iframe,
- "<iframe> is attached and loaded with html content after <object>.");
- assert_equals(
- window[0],
- old_windows[0],
- "The first window is that of <object>'s frame.");
-
- // Now navigate the object element again.
- onObjectLoad = onLoadPromise(object);
- object.data = url2;
- await onObjectLoad;
- assert_equals(
- window[0].frameElement,
- iframe,
- "<object>'s previous frame must have been destroyed.");
-
- assert_equals(
- window[1].frameElement,
- object,
- "<object>'s new window should be appended after navigation.");
-
- assert_not_equals(
- old_windows[0],
- window[1],
- "The old window and new window are different for <object>.");
-
- assert_equals(
- old_windows[1],
- window[0],
- "The old and new window are the same for <iframe>.");
-
- }, "Verify that changing 'data' attribute of an <object> element discards" +
- " the old browsing context and creates a new browsing context.");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html
index ba82fe8e7c8..6191827e234 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html
@@ -96,6 +96,7 @@ promise_test(t => {
"onclick",
`import('../imports-a.js?label=inline event handlers triggered via UA code').then(window.continueTest, window.errorTest)`
);
+ assert_equals(typeof dummyDiv.onclick, "function", "the browser must be able to parse a string containing the import() syntax into a function");
dummyDiv.click(); // different from **on**click()
return promise.then(assertSuccessful);
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html
index 889628f8395..3e09dd6d4b9 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html
@@ -95,6 +95,7 @@ promise_test(t => {
"onclick",
`import('../imports-a.js?label=inline event handlers triggered via UA code').then(window.continueTest, window.errorTest)`
);
+ assert_equals(typeof dummyDiv.onclick, 'function', "the browser must be able to parse a string containing the import() syntax into a function");
dummyDiv.click(); // different from **on**click()
return promise.then(assertSuccessful);
diff --git a/tests/wpt/web-platform-tests/lifecycle/freeze.html b/tests/wpt/web-platform-tests/lifecycle/freeze.html
new file mode 100644
index 00000000000..66bbbffd1fa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/lifecycle/freeze.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>TestDriver freeze method</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+var test = async_test('Test freeze callback.');
+var childWindow = window.open('resources/window.html', 'Child Window');
+var total_steps = 0;
+
+const StepStatus = {
+ ADDED: 0,
+ SUCCESS: 1,
+ FAIL: 2,
+};
+
+var steps_map = new Map();
+
+function add_step(name) {
+ steps_map[name] = StepStatus.ADDED;
+ total_steps++;
+}
+
+function step_success(name) {
+ total_steps--;
+ steps_map[name] = StepStatus.SUCCESS;
+ if (total_steps == 0)
+ test.done();
+}
+
+function step_fail(name) {
+ total_steps--;
+ steps_map[name] = StepStatus.FAIL;
+ test.step(() => assert_unreached('During onfreeze: ' + name + ' failed to behave as expected.'));
+ if (total_steps == 0)
+ test.done();
+}
+
+test.step_timeout(() => {
+ for (var step in steps_map) {
+ if(steps_map[step] == StepStatus.ADDED)
+ test.step(() => assert_unreached('During onfreeze: ' + step + ' never finshed.'));
+ }
+}, 1000);
+
+</script>
+
diff --git a/tests/wpt/web-platform-tests/lifecycle/resources/foo.txt b/tests/wpt/web-platform-tests/lifecycle/resources/foo.txt
new file mode 100644
index 00000000000..403d0106082
--- /dev/null
+++ b/tests/wpt/web-platform-tests/lifecycle/resources/foo.txt
@@ -0,0 +1 @@
+Sample test file for fetch inside onfreeze. \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/lifecycle/resources/window.html b/tests/wpt/web-platform-tests/lifecycle/resources/window.html
new file mode 100644
index 00000000000..1e52587c526
--- /dev/null
+++ b/tests/wpt/web-platform-tests/lifecycle/resources/window.html
@@ -0,0 +1,66 @@
+<!doctype html>
+<html>
+<head><title>Frozen Window</title></head>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<body>
+<h1>This window will be frozen</h1>
+<script>
+
+const freezingStepName = 'testOnFreeze';
+
+function testFetch(keepalive) {
+ var name = 'testfetch' + (keepalive ? 'with' : 'without') + 'keepalive';
+ window.opener.add_step(name);
+
+ function handler(expected) {
+ if (expected == true)
+ window.opener.step_success(name);
+ else
+ window.opener.step_fail(name);
+ }
+
+ fetch('foo.txt', {
+ keepalive: keepalive
+ }).then(() => handler(keepalive)).catch(() => handler(!keepalive));
+}
+
+function testXHR(async) {
+ var name = 'test' + (async ? 'Async' : 'Sync') + 'XHR';
+ window.opener.add_step(name);
+ var xhr = new XMLHttpRequest();
+ xhr.onreadystatechange = () => {
+ if (xhr.readyState === 4) {
+ if (xhr.status === 0)
+ window.opener.step_success(name);
+ else
+ window.opener.step_fail(name);
+ }
+ }
+ xhr.open('GET', 'foo.txt', async);
+ try {
+ xhr.send(null);
+ } catch {
+ window.opener.step_success(name);
+ };
+}
+
+window.document.addEventListener("freeze", () => {
+ // Testing fetch, only fetch keepalive should succeed.
+ testFetch(true /* keepalive */);
+ testFetch(false /* keepalive */);
+ // Testing XHR, both sync and async should fail.
+ testXHR(true /* async */);
+ testXHR(false /* sync */);
+ window.opener.step_success(freezingStepName);
+});
+
+onload = function() {
+ window.opener.focus();
+ window.opener.add_step(freezingStepName);
+ test_driver.freeze();
+};
+
+</script>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html b/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html
index 338611ac078..b025a3ad6ce 100644
--- a/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html
+++ b/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html
@@ -14,15 +14,20 @@ var makeAsyncTest = function(filename, numTracks) {
var video = document.createElement('video');
video.src = "/media/" + filename;
video.onerror = this.unreached_func("<video> error");
- video.play();
assert_true('captureStream' in video);
var stream = video.captureStream();
assert_not_equals(stream, null, "error generating stream");
- // onactive event is marked for deprecation (https://crbug.com/649328)
- stream.onactive = this.step_func_done(function() {
+ stream.onaddtrack = this.step_func_done(function() {
+ var tracks = stream.getTracks();
+ var idx;
+
+ for (idx = 0; idx < tracks.length; idx += 1) {
+ assert_equals(tracks[idx].readyState, 'live')
+ }
+
// The stream got a (number of) MediaStreamTracks added.
assert_equals(stream.getVideoTracks().length, numTracks['vid'], 'video');
assert_equals(stream.getAudioTracks().length, numTracks['aud'], 'audio');
diff --git a/tests/wpt/web-platform-tests/mediacapture-fromelement/historical.html b/tests/wpt/web-platform-tests/mediacapture-fromelement/historical.html
new file mode 100644
index 00000000000..3b86e9de35b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mediacapture-fromelement/historical.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Historical features</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script>
+ // https://lists.w3.org/Archives/Public/public-media-capture/2015Nov/0012.html
+ test(function() {
+ assert_false(MediaStream.prototype.hasOwnProperty('onactive'));
+ }, 'the deprecated MediaStream `onactive` event handler property is not available');
+ </script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html
index d8480a29223..6892f01aa95 100644
--- a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html
+++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html
@@ -1,11 +1,14 @@
<!doctype html>
<meta charset="utf-8">
-<title>Test for CanMakePaymentEvent Constructor (window)</title>
+<title>Test for CanMakePaymentEvent Constructor</title>
<link rel="help" href="https://w3c.github.io/payment-handler/#dom-canmakepaymentevent">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
<script>
+
test(() => {
assert_false('CanMakePaymentEvent' in window);
}, 'CanMakePaymentEvent constructor must not be exposed in window');
+
</script>
diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.html b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.html
new file mode 100644
index 00000000000..afff850dc47
--- /dev/null
+++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Test for CanMakePaymentEvent Constructor</title>
+<link rel="help" href="https://w3c.github.io/payment-handler/#dom-canmakepaymentevent">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
+<script>
+
+service_worker_test('can-make-payment-event-constructor.https.serviceworker.js',
+ 'CanMakePaymentEvent can be constructed in service worker');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.js b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.js
new file mode 100644
index 00000000000..01ce642d234
--- /dev/null
+++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.js
@@ -0,0 +1,45 @@
+importScripts('/resources/testharness.js');
+
+test(() => {
+ try {
+ new CanMakePaymentEvent('test', undefined);
+ new CanMakePaymentEvent('test', null);
+ new CanMakePaymentEvent('test', {});
+ } catch (err) {
+ assert_unreached(`Unexpected exception: ${err.message}`);
+ }
+}, 'CanMakePaymentEvent can be constructed in service worker.');
+
+test(() => {
+ const ev = new CanMakePaymentEvent('test', {
+ bubbles: true,
+ cancelable: true,
+ composed: true,
+ });
+ assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
+ assert_true(ev.bubbles, 'set by EventInitDict');
+ assert_true(ev.cancelable, 'set by EventInitDict');
+ assert_true(ev.composed, 'set by EventInitDict');
+ assert_equals(ev.target, null, 'initially null');
+ assert_equals(ev.type, 'test');
+}, 'CanMakePaymentEvent can be constructed with an EventInitDict, even if not trusted');
+
+test(() => {
+ const ev = new CanMakePaymentEvent('test', {
+ topOrigin: 'https://foo.com',
+ paymentRequestOrigin: 'https://bar.com',
+ methodData: [],
+ modifiers: [],
+ });
+ assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
+ assert_equals(ev.topOrigin, 'https://foo.com');
+ assert_equals(ev.paymentRequestOrigin, 'https://bar.com');
+}, 'CanMakePaymentEvent can be constructed with a CanMakePaymentEventInit, even if not trusted');
+
+test(() => {
+ const ev = new CanMakePaymentEvent('test', {});
+ self.addEventListener('test', evt => {
+ assert_equals(ev, evt);
+ });
+ self.dispatchEvent(ev);
+}, 'CanMakePaymentEvent can be dispatched, even if not trusted');
diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js
index 8ae05d7853a..d88bddceafa 100644
--- a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js
+++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js
@@ -1,49 +1,7 @@
-// https://w3c.github.io/payment-handler/#the-canmakepaymentevent
-
-'use strict';
-
-if (self.importScripts) {
- importScripts('/resources/testharness.js');
-}
-
-test(() => {
- try {
- new CanMakePaymentEvent('test');
- } catch (err) {
- assert_unreached(`Unexpected exception: ${err.message}`);
- }
-}, 'CanMakePaymentEvent can be constructed in service worker.');
+importScripts('/resources/testharness.js');
test(() => {
- const ev = new CanMakePaymentEvent('test', {
- bubbles: true,
- cancelabel: true,
- composed: true,
- });
- assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
- assert_true(ev.bubbles, 'set by EventInitDict');
- assert_true(ev.cancelable, 'set by EventInitDict');
- assert_true(ev.composed, 'set by EventInitDict');
- assert_equals(ev.target, null, 'initially null');
- assert_equals(ev.type, 'test');
-}, 'CanMakePaymentEvent can be constructed with an EventInitDict, even if not trusted');
+ assert_false('CanMakePaymentEvent' in self);
+}, 'CanMakePaymentEvent constructor must not be exposed in worker');
-test(() => {
- const ev = new CanMakePaymentEvent('test', {
- topOrigin: 'https://foo.com',
- paymentRequestOrigin: 'https://bar.com',
- methodData: [],
- modifiers: [],
- });
- assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
- assert_equals(ev.topOrigin, 'https://foo.com');
- assert_equals(ev.paymentRequestOrigin, 'https://bar.com');
-}, 'CanMakePaymentEvent can be constructed with a CanMakePaymentEventInit, even if not trusted');
-
-test(() => {
- const ev = new CanMakePaymentEvent('test');
- self.addEventListener('test', evt => {
- assert_equals(ev, evt);
- });
- self.dispatchEvent(ev);
-}, 'CanMakePaymentEvent can be dispatched, even if not trusted');
+done();
diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.html b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.html
new file mode 100644
index 00000000000..31ac8cafa78
--- /dev/null
+++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Test for PaymentRequestEvent Constructor</title>
+<link rel="help" href="https://w3c.github.io/payment-handler/#the-paymentrequestevent">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
+<script>
+
+test(() => {
+ assert_false('PaymentRequestEvent' in window);
+}, 'PaymentRequestEvent constructor must not be exposed in window');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.html b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.html
new file mode 100644
index 00000000000..a64c4290e03
--- /dev/null
+++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Test for PaymentRequestEvent Constructor</title>
+<link rel="help" href="https://w3c.github.io/payment-handler/#the-paymentrequestevent">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
+<script>
+
+service_worker_test('payment-request-event-constructor.https.serviceworker.js',
+ 'PaymentRequestEvent can be constructed in service worker');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.js b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.js
new file mode 100644
index 00000000000..1aea7000c14
--- /dev/null
+++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.js
@@ -0,0 +1,45 @@
+importScripts('/resources/testharness.js');
+
+test(() => {
+ try {
+ new PaymentRequestEvent('test', undefined);
+ new PaymentRequestEvent('test', null);
+ new PaymentRequestEvent('test', {});
+ } catch (err) {
+ assert_unreached(`Unexpected exception: ${err.message}`);
+ }
+}, 'PaymentRequestEvent can be constucted in service worker.');
+
+test(() => {
+ const ev = new PaymentRequestEvent('test', {
+ bubbles: true,
+ cancelable: true,
+ composed: true,
+ });
+ assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
+ assert_true(ev.bubbles, 'set by EventInitDict');
+ assert_true(ev.cancelable, 'set by EventInitDict');
+ assert_true(ev.composed, 'set by EventInitDict');
+ assert_equals(ev.target, null, 'initially null');
+ assert_equals(ev.type, 'test');
+}, 'PaymentRequestEvent can be constructed with an EventInitDict, even if not trusted');
+
+test(() => {
+ const ev = new PaymentRequestEvent('test', {
+ topOrigin: 'https://foo.com',
+ paymentRequestOrigin: 'https://bar.com',
+ methodData: [],
+ modifiers: [],
+ });
+ assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
+ assert_equals(ev.topOrigin, 'https://foo.com');
+ assert_equals(ev.paymentRequestOrigin, 'https://bar.com');
+}, 'PaymentRequestEvent can be constructed with a PaymentRequestEventInit, even if not trusted');
+
+test(() => {
+ const ev = new PaymentRequestEvent('test', {});
+ self.addEventListener('test', evt => {
+ assert_equals(ev, evt);
+ });
+ self.dispatchEvent(ev);
+}, 'PaymentRequestEvent can be dispatched, even if not trusted');
diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.worker.js b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.worker.js
new file mode 100644
index 00000000000..fdb71aa8451
--- /dev/null
+++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.worker.js
@@ -0,0 +1,7 @@
+importScripts('/resources/testharness.js');
+
+test(() => {
+ assert_false('PaymentRequestEvent' in self);
+}, 'PaymentRequestEvent constructor must not be exposed in worker');
+
+done();
diff --git a/tests/wpt/web-platform-tests/priority-hints/OWNERS b/tests/wpt/web-platform-tests/priority-hints/OWNERS
new file mode 100644
index 00000000000..56538f3eca2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/priority-hints/OWNERS
@@ -0,0 +1 @@
+@domfarolino
diff --git a/tests/wpt/web-platform-tests/priority-hints/img-attr-named-constructor.tentative.html b/tests/wpt/web-platform-tests/priority-hints/img-attr-named-constructor.tentative.html
new file mode 100644
index 00000000000..d9dd22a9c5d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/priority-hints/img-attr-named-constructor.tentative.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<title>Priority Hints - Image element</title>
+<meta name="author" title="Dominic Farolino" href="mailto:domfarolino@gmail.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<img id=img1 src=/images/green.png importance=high>
+<img id=img2 src=/images/green.png importance=low>
+<img id=img3 src=/images/green.png importance=auto>
+<img id=img4 src=/images/green.png importance=xyz>
+<img id=img5 src=/images/green.png>
+
+<script>
+ test(() => {
+ assert_equals(img1.importance, "high", "high importance is a valid IDL value on the image element");
+ assert_equals(img2.importance, "low", "high importance is a valid IDL value on the image element");
+ assert_equals(img3.importance, "auto", "auto importance is a valid IDL value on the image element");
+ assert_equals(img4.importance, "auto", "invalid importance reflects as 'auto' IDL attribute on the image element");
+ assert_equals(img5.importance, "auto", "missing importance reflects as 'auto' IDL attribute on the image element");
+ }, "importance attribute on <img> elements should reflect valid IDL values");
+
+ const img = new Image();
+ assert_equals(img.importance, "auto");
+</script>
diff --git a/tests/wpt/web-platform-tests/priority-hints/link-attr.tentative.html b/tests/wpt/web-platform-tests/priority-hints/link-attr.tentative.html
new file mode 100644
index 00000000000..1c5aeb530eb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/priority-hints/link-attr.tentative.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<title>Priority Hints - Link element</title>
+<meta name="author" title="Dominic Farolino" href="mailto:domfarolino@gmail.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<link id=link1 href=resources/stylesheet.css importance=high>
+<link id=link2 href=resources/stylesheet.css importance=low>
+<link id=link3 href=resources/stylesheet.css importance=auto>
+<link id=link4 href=resources/stylesheet.css importance=xyz>
+<link id=link5 href=resources/stylesheet.css>
+
+<script>
+ test(() => {
+ assert_equals(link1.importance, "high", "high importance is a valid IDL value on the link element");
+ assert_equals(link2.importance, "low", "high importance is a valid IDL value on the link element");
+ assert_equals(link3.importance, "auto", "auto importance is a valid IDL value on the link element");
+ assert_equals(link4.importance, "auto", "invalid importance reflects as 'auto' IDL attribute on the link element");
+ assert_equals(link5.importance, "auto", "missing importance reflects as 'auto' IDL attribute on the link element");
+ }, "importance attribute on <link> elements should reflect valid IDL values");
+
+ const link = document.createElement("link");
+ assert_equals(link.importance, "auto");
+</script>
diff --git a/tests/wpt/web-platform-tests/priority-hints/resources/stylesheet.css b/tests/wpt/web-platform-tests/priority-hints/resources/stylesheet.css
new file mode 100644
index 00000000000..9d9d772fb46
--- /dev/null
+++ b/tests/wpt/web-platform-tests/priority-hints/resources/stylesheet.css
@@ -0,0 +1,3 @@
+body {
+ background-color: green;
+}
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html b/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html
new file mode 100644
index 00000000000..7ca8237b02c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<meta charset="utf-8" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/>
+<title>This test validates that resource timing implementations have a finite number of entries in their buffer.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<script>
+ const t = async_test("Finite resource timing entries buffer size");
+ performance.onresourcetimingbufferfull = t.step_func_done(function() {
+ });
+ window.onload = t.step_func(
+ function() {
+ // Scripts appended in JS to ensure setResourceTimingBufferSize is called before.
+ let counter = performance.getEntriesByType("resource").length;
+ function appendScript() {
+ const src = "resources/empty.js?" + counter;
+ const script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.onload = function() { ++counter; appendScript()};
+ script.src = src;
+ document.body.appendChild(script);
+ }
+ appendScript();
+ });
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js
index e83c4bf6f87..d00572492df 100644
--- a/tests/wpt/web-platform-tests/resources/idlharness.js
+++ b/tests/wpt/web-platform-tests/resources/idlharness.js
@@ -887,7 +887,7 @@ IdlArray.prototype.assert_type_is = function(value, type)
return;
}
- if (type.sequence)
+ if (type.generic === "sequence")
{
assert_true(Array.isArray(value), "should be an Array");
if (!value.length)
diff --git a/tests/wpt/web-platform-tests/resources/testdriver.js b/tests/wpt/web-platform-tests/resources/testdriver.js
index a09a6e8d7af..6fadb8ac494 100644
--- a/tests/wpt/web-platform-tests/resources/testdriver.js
+++ b/tests/wpt/web-platform-tests/resources/testdriver.js
@@ -119,6 +119,21 @@
}
return window.test_driver_internal.send_keys(element, keys);
+ },
+
+ /**
+ * Freeze the current page
+ *
+ * The freeze function transitions the page from the HIDDEN state to
+ * the FROZEN state as described in {@link
+ * https://github.com/WICG/page-lifecycle/blob/master/README.md|Lifecycle API
+ * for Web Pages}
+ *
+ * @returns {Promise} fullfilled after the freeze request is sent, or rejected
+ * in case the WebDriver command errors
+ */
+ freeze: function() {
+ return window.test_driver_internal.freeze();
}
};
@@ -143,6 +158,16 @@
*/
send_keys: function(element, keys) {
return Promise.reject(new Error("unimplemented"));
+ },
+
+ /**
+ * Freeze the current page
+ *
+ * @returns {Promise} fullfilled after freeze request is sent, otherwise
+ * it gets rejected
+ */
+ freeze: function() {
+ return Promise.reject(new Error("unimplemented"));
}
};
})();
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html
index 506827f89d5..09b4496aa0e 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html
@@ -75,7 +75,7 @@ promise_test(t => {
return post_and_wait_for_reply(worker, 'message');
})
.then(result => {
- assert_equals(result.error, 'TypeError');
+ assert_equals(result.error, 'NetworkError');
assert_equals(result.value, null);
});
}, 'import script not previously imported');
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js
index 0f5005d9af4..e01664662ef 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js
@@ -4,6 +4,7 @@ let echo_output = null;
// Tests importing a script that sets |echo_output| to the query string.
function test_import(str) {
+ echo_output = null;
importScripts('import-scripts-echo.py?msg=' + str);
assert_equals(echo_output, str);
}
@@ -18,6 +19,7 @@ self.addEventListener('install', () => {
self.addEventListener('message', e => {
var error = null;
+ echo_output = null;
try {
importScripts('import-scripts-echo.py?msg=' + e.data);
diff --git a/tests/wpt/web-platform-tests/tools/lint/lint.py b/tests/wpt/web-platform-tests/tools/lint/lint.py
index 058ee2bbd23..7fd1d1e0010 100644
--- a/tests/wpt/web-platform-tests/tools/lint/lint.py
+++ b/tests/wpt/web-platform-tests/tools/lint/lint.py
@@ -664,6 +664,8 @@ def check_script_metadata(repo_root, path, f):
elif key == b"timeout":
if value != b"long":
errors.append(("UNKNOWN-TIMEOUT-METADATA", "Unexpected value for timeout metadata", path, idx + 1))
+ elif key == b"title":
+ pass
elif key == b"script":
pass
elif key == b"variant":
diff --git a/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py b/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py
index 539022bb988..28ccacc8787 100644
--- a/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py
+++ b/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py
@@ -521,6 +521,7 @@ def test_css_missing_file_manual():
"foo.any.js",
])
@pytest.mark.parametrize("input,error", [
+ (b"""//META: title=foo\n""", None),
(b"""//META: timeout=long\n""", None),
(b"""// META: timeout=long\n""", None),
(b"""// META: timeout=long\n""", None),
diff --git a/tests/wpt/web-platform-tests/tools/serve/serve.py b/tests/wpt/web-platform-tests/tools/serve/serve.py
index d77875b182c..10dc3b3bd6c 100644
--- a/tests/wpt/web-platform-tests/tools/serve/serve.py
+++ b/tests/wpt/web-platform-tests/tools/serve/serve.py
@@ -160,8 +160,11 @@ class HtmlWrapperHandler(WrapperHandler):
if value == b"long":
return '<meta name="timeout" content="long">'
if key == b"script":
- attribute = value.decode('utf-8').replace('"', "&quot;").replace(">", "&gt;")
+ attribute = value.decode('utf-8').replace("&", "&amp;").replace('"', "&quot;")
return '<script src="%s"></script>' % attribute
+ if key == b"title":
+ value = value.decode('utf-8').replace("&", "&amp;").replace("<", "&lt;")
+ return '<title>%s</title>' % value
return None
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
index 9e4290d9bbd..7c76e2e03b6 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
@@ -86,12 +86,6 @@ class RunInfo(dict):
elif "debug" not in self:
# Default to release
self["debug"] = False
- if product == "firefox" and "stylo" not in self:
- self["stylo"] = False
- if "STYLO_FORCE_ENABLED" in os.environ:
- self["stylo"] = True
- if "STYLO_FORCE_DISABLED" in os.environ:
- self["stylo"] = False
if browser_version:
self["browser_version"] = browser_version
if extras is not None:
diff --git a/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html b/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html
deleted file mode 100644
index 2e6e49f4aff..00000000000
--- a/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>document.createTouch and document.createTouchList Tests</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="touch-support.js"></script>
-<body>
-<div id="target0"></div>
-<script>
-test(function() {
- var touchList = document.createTouchList();
- assert_equals(touchList.length, 0, "touchList.length is 0");
- check_TouchList_object(touchList);
-}, "document.createTouchList exists and correctly creates a TouchList from zero Touch objects");
-
-test(function() {
- var testTarget = document.getElementById('target0');
- var touch1 = new Touch({identifier: 123, target: testTarget});
- var touchList = document.createTouchList(touch1);
- assert_equals(touchList.length, 1, "touchList.length is 1");
- assert_equals(touchList.item(0), touch1, "touchList.item(0) is touch1");
- check_TouchList_object(touchList);
-}, "document.createTouchList exists and correctly creates a TouchList from a single Touch");
-
-test(function() {
- var testTarget = document.getElementById('target0');
- var touch1 = new Touch({identifier: 123, target: testTarget});
- var touch2 = new Touch({identifier: 124, target: target0});
- var touchList = document.createTouchList(touch1, touch2);
- assert_equals(touchList.length, 2, "touchList.length is 2");
- assert_equals(touchList.item(0), touch1, "touchList.item(0) is touch1");
- assert_equals(touchList.item(1), touch2, "touchList.item(1) is touch2");
- check_TouchList_object(touchList);
-}, "document.createTouchList exists and correctly creates a TouchList from two Touch objects");
-</script>
-</head>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/touch-events/historical.html b/tests/wpt/web-platform-tests/touch-events/historical.html
index e5db6ef32da..27cc88d8ce0 100644
--- a/tests/wpt/web-platform-tests/touch-events/historical.html
+++ b/tests/wpt/web-platform-tests/touch-events/historical.html
@@ -26,7 +26,8 @@ test(function() {
assert_false("identifiedTouch" in TouchList.prototype,
"Should not be supported on the prototype");
- var touchList = document.createTouchList();
+ var touchevent = new TouchEvent("touchstart", {});
+ var touchList = touchevent.touches;
assert_false("identifiedTouch" in touchList,
"Should not be supported on the instance");
}, "TouchList::identifiedTouch");
@@ -47,4 +48,12 @@ test(function() {
assert_false("createTouch" in document,
"Should not be supported on the instance");
}, "Document::createTouch");
+
+test(function() {
+ assert_false("createTouchList" in Document.prototype,
+ "Should not be supported on the prototype");
+
+ assert_false("createTouchList" in document,
+ "Should not be supported on the instance");
+}, "Document::createTouchList");
</script>
diff --git a/tests/wpt/web-platform-tests/url/README.md b/tests/wpt/web-platform-tests/url/README.md
index 34c35dc4a35..667951d680f 100644
--- a/tests/wpt/web-platform-tests/url/README.md
+++ b/tests/wpt/web-platform-tests/url/README.md
@@ -23,7 +23,7 @@ The keys for each test case are:
In addition to testing that parsing `input` against `base` gives the result, a test harness for the
`URL` constructor (or similar APIs) should additionally test the following pattern: if `failure` is
-true, parsing `about:blank` against `base` must give failure. This tests that the logic for
+true, parsing `about:blank` against `input` must give failure. This tests that the logic for
converting base URLs into strings properly fails the whole parsing algorithm if the base URL cannot
be parsed.
diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html
index 870e4891240..420617d1194 100644
--- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html
+++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html
@@ -17,41 +17,43 @@ html {
<script>
'use strict';
-for (const property in gCSSProperties) {
- if (!isSupported(property)) {
- continue;
- }
-
- const setupFunction = gCSSProperties[property].setup;
- for (const animationType of gCSSProperties[property].types) {
- let typeObject;
- let animationTypeString;
- if (typeof animationType === 'string') {
- typeObject = types[animationType];
- animationTypeString = animationType;
- } else if (typeof animationType === 'object' &&
- animationType.type && typeof animationType.type === 'string') {
- typeObject = types[animationType.type];
- animationTypeString = animationType.type;
+test(function() {
+ for (const property in gCSSProperties) {
+ if (!isSupported(property)) {
+ continue;
}
- // First, test that the animation type object has 'testAccumulation'.
- // We use test() function here so that we can continue the remainder tests
- // even if this test fails.
- test(t => {
- assert_own_property(typeObject, 'testAccumulation', animationTypeString +
- ' should have testAccumulation property');
- assert_equals(typeof typeObject.testAccumulation, 'function',
- 'testAccumulation method should be a function');
- }, `${property} (type: ${animationTypeString}) has testAccumulation`
- + ' function');
+ const setupFunction = gCSSProperties[property].setup;
+ for (const animationType of gCSSProperties[property].types) {
+ let typeObject;
+ let animationTypeString;
+ if (typeof animationType === 'string') {
+ typeObject = types[animationType];
+ animationTypeString = animationType;
+ } else if (typeof animationType === 'object' &&
+ animationType.type && typeof animationType.type === 'string') {
+ typeObject = types[animationType.type];
+ animationTypeString = animationType.type;
+ }
- if (typeObject.testAccumulation &&
- typeof typeObject.testAccumulation === 'function') {
- typeObject.testAccumulation(property,
- setupFunction,
- animationType.options);
+ // First, test that the animation type object has 'testAccumulation'.
+ // We use test() function here so that we can continue the remainder tests
+ // even if this test fails.
+ test(t => {
+ assert_own_property(typeObject, 'testAccumulation', animationTypeString +
+ ' should have testAccumulation property');
+ assert_equals(typeof typeObject.testAccumulation, 'function',
+ 'testAccumulation method should be a function');
+ }, `${property} (type: ${animationTypeString}) has testAccumulation`
+ + ' function');
+
+ if (typeObject.testAccumulation &&
+ typeof typeObject.testAccumulation === 'function') {
+ typeObject.testAccumulation(property,
+ setupFunction,
+ animationType.options);
+ }
}
}
-}
+}, 'Setup');
</script>
diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html
index 61256314fea..f17eedabbdd 100644
--- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html
+++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html
@@ -17,41 +17,43 @@ html {
<script>
'use strict';
-for (const property in gCSSProperties) {
- if (!isSupported(property)) {
- continue;
- }
-
- const setupFunction = gCSSProperties[property].setup;
- for (const animationType of gCSSProperties[property].types) {
- let typeObject;
- let animationTypeString;
- if (typeof animationType === 'string') {
- typeObject = types[animationType];
- animationTypeString = animationType;
- } else if (typeof animationType === 'object' &&
- animationType.type && typeof animationType.type === 'string') {
- typeObject = types[animationType.type];
- animationTypeString = animationType.type;
+test(function() {
+ for (const property in gCSSProperties) {
+ if (!isSupported(property)) {
+ continue;
}
- // First, test that the animation type object has 'testAddition'.
- // We use test() function here so that we can continue the remainder tests
- // even if this test fails.
- test(t => {
- assert_own_property(typeObject, 'testAddition', animationTypeString +
- ' should have testAddition property');
- assert_equals(typeof typeObject.testAddition, 'function',
- 'testAddition method should be a function');
- }, `${property} (type: ${animationTypeString}) has testAddition`
- + ' function');
+ const setupFunction = gCSSProperties[property].setup;
+ for (const animationType of gCSSProperties[property].types) {
+ let typeObject;
+ let animationTypeString;
+ if (typeof animationType === 'string') {
+ typeObject = types[animationType];
+ animationTypeString = animationType;
+ } else if (typeof animationType === 'object' &&
+ animationType.type && typeof animationType.type === 'string') {
+ typeObject = types[animationType.type];
+ animationTypeString = animationType.type;
+ }
- if (typeObject.testAddition &&
- typeof typeObject.testAddition === 'function') {
- typeObject.testAddition(property,
- setupFunction,
- animationType.options);
+ // First, test that the animation type object has 'testAddition'.
+ // We use test() function here so that we can continue the remainder tests
+ // even if this test fails.
+ test(t => {
+ assert_own_property(typeObject, 'testAddition', animationTypeString +
+ ' should have testAddition property');
+ assert_equals(typeof typeObject.testAddition, 'function',
+ 'testAddition method should be a function');
+ }, `${property} (type: ${animationTypeString}) has testAddition`
+ + ' function');
+
+ if (typeObject.testAddition &&
+ typeof typeObject.testAddition === 'function') {
+ typeObject.testAddition(property,
+ setupFunction,
+ animationType.options);
+ }
}
}
-}
+}, "Setup");
</script>
diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html
index 2c335da0dc4..fe23d89fd06 100644
--- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html
+++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html
@@ -17,41 +17,43 @@ html {
<script>
'use strict';
-for (const property in gCSSProperties) {
- if (!isSupported(property)) {
- continue;
- }
-
- const setupFunction = gCSSProperties[property].setup;
- for (const animationType of gCSSProperties[property].types) {
- let typeObject;
- let animationTypeString;
- if (typeof animationType === 'string') {
- typeObject = types[animationType];
- animationTypeString = animationType;
- } else if (typeof animationType === 'object' &&
- animationType.type && typeof animationType.type === 'string') {
- typeObject = types[animationType.type];
- animationTypeString = animationType.type;
+test(function() {
+ for (const property in gCSSProperties) {
+ if (!isSupported(property)) {
+ continue;
}
- // First, test that the animation type object has 'testInterpolation'.
- // We use test() function() here so that we can continue the remainder tests
- // even if this test fails.
- test(t => {
- assert_own_property(typeObject, 'testInterpolation', animationTypeString +
- ' should have testInterpolation property');
- assert_equals(typeof typeObject.testInterpolation, 'function',
- 'testInterpolation method should be a function');
- }, `${property} (type: ${animationTypeString}) has testInterpolation`
- + ' function');
+ const setupFunction = gCSSProperties[property].setup;
+ for (const animationType of gCSSProperties[property].types) {
+ let typeObject;
+ let animationTypeString;
+ if (typeof animationType === 'string') {
+ typeObject = types[animationType];
+ animationTypeString = animationType;
+ } else if (typeof animationType === 'object' &&
+ animationType.type && typeof animationType.type === 'string') {
+ typeObject = types[animationType.type];
+ animationTypeString = animationType.type;
+ }
- if (typeObject.testInterpolation &&
- typeof typeObject.testInterpolation === 'function') {
- typeObject.testInterpolation(property,
- setupFunction,
- animationType.options);
+ // First, test that the animation type object has 'testInterpolation'.
+ // We use test() function() here so that we can continue the remainder tests
+ // even if this test fails.
+ test(t => {
+ assert_own_property(typeObject, 'testInterpolation', animationTypeString +
+ ' should have testInterpolation property');
+ assert_equals(typeof typeObject.testInterpolation, 'function',
+ 'testInterpolation method should be a function');
+ }, `${property} (type: ${animationTypeString}) has testInterpolation`
+ + ' function');
+
+ if (typeObject.testInterpolation &&
+ typeof typeObject.testInterpolation === 'function') {
+ typeObject.testInterpolation(property,
+ setupFunction,
+ animationType.options);
+ }
}
}
-}
+}, 'Setup');
</script>
diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js
index ec0c33fb5bd..f0b2a640c79 100644
--- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js
+++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js
@@ -1556,6 +1556,7 @@ function createTestElement(t, setup) {
function isSupported(property) {
const testKeyframe = new TestKeyframe(propertyToIDL(property));
+ assert_not_equals(window.KeyframeEffect, undefined, 'window.KeyframeEffect');
try {
// Since TestKeyframe returns 'undefined' for |property|,
// the KeyframeEffect constructor will throw
diff --git a/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html b/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html
index 19ee5d3da88..cb3cf761f71 100644
--- a/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html
+++ b/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html
@@ -137,21 +137,25 @@ promise_test(t => {
promise_test(() => {
return new Promise((resolve,reject) => {
let iframe = document.createElement('iframe');
- iframe.srcdoc = '<script>' +
- ' window.onmessage = message => {' +
- ' if (message.data === "Ready") {' +
- ' let onSuccess = () => { parent.postMessage("Failure", "*"); };' +
- ' let onError = error => {' +
- ' if (error.name == "SecurityError") {' +
- ' parent.postMessage("Success", "*");' +
- ' } else {' +
- ' parent.postMessage("Failure", "*");' +
- ' }' +
- ' };' +
- ' navigator.nfc.push("Test").then(onSuccess, onError);' +
- ' }' +
- ' };' +
- '<\/script>';
+ iframe.srcdoc = `<script>
+ window.onmessage = message => {
+ if (message.data === "Ready") {
+ let onSuccess = () => { parent.postMessage("Failure", "*"); };
+ let onError = error => {
+ if (error.name == "SecurityError") {
+ parent.postMessage("Success", "*");
+ } else {
+ parent.postMessage("Failure", "*");
+ }
+ };
+ try {
+ navigator.nfc.push("Test").then(onSuccess, onError);
+ } catch(e) {
+ parent.postMessage("Failure", "*");
+ }
+ }
+ };
+ <\/script>`;
iframe.onload = () => iframe.contentWindow.postMessage('Ready', '*');
document.body.appendChild(iframe);
window.onmessage = message => {
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js
index 8ccebbd867f..34e0d75903c 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js
@@ -229,7 +229,7 @@ function exchangeIceCandidates(pc1, pc2) {
// There is ongoing discussion on w3c/webrtc-pc#1213
// that there should be an empty candidate string event
// for end of candidate for each m= section.
- if(candidate) {
+ if(candidate && remotePc.signalingState !== 'closed') {
remotePc.addIceCandidate(candidate);
}
});
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html
index 3ceafe094d6..1dbcf41118a 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html
@@ -81,10 +81,10 @@
let eventCount = 0;
const states = [
- 'stable', 'have-local-offer', 'stable', 'have-remote-offer', 'closed'
+ 'stable', 'have-local-offer', 'stable', 'have-remote-offer',
];
- pc.onsignalingstatechange = () =>
- assert_equals(pc.signalingState, states[++eventCount]);
+ pc.onsignalingstatechange = t.step_func(() =>
+ assert_equals(pc.signalingState, states[++eventCount]));
const assert_state = state => {
assert_equals(state, pc.signalingState);
@@ -101,8 +101,6 @@
assert_state('stable');
await pc.setRemoteDescription(await pc2.createOffer());
assert_state('have-remote-offer');
- pc.close();
- assert_state('closed');
}, 'Negotiation should fire signalingsstate events');
/* Operations after returning to stable state */
diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-csp.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-csp.html
new file mode 100644
index 00000000000..02b88e82269
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-csp.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: CSP for ES Modules</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+async function openWindow(url) {
+ const win = window.open(url, '_blank');
+ add_result_callback(() => win.close());
+ const msg_event = await new Promise(resolve => window.onmessage = resolve);
+ assert_equals(msg_event.data, 'LOADED');
+ return win;
+}
+
+function import_csp_test(
+ cspHeader, scriptURL, expectedImportedModules, description) {
+ const windowURL =
+ `resources/new-worker-window.html?pipe=header(` +
+ `Content-Security-Policy, ${cspHeader})`;
+ promise_test(async () => {
+ // Open a window that has the given CSP header.
+ const win = await openWindow(windowURL);
+ // Ask the window to start a dedicated worker. The worker inherits the
+ // window's CSP header.
+ // https://w3c.github.io/webappsec-csp/#initialize-global-object-csp
+ win.postMessage(scriptURL, '*');
+ const msg_event = await new Promise(resolve => window.onmessage = resolve);
+ assert_array_equals(msg_event.data, expectedImportedModules);
+ }, description);
+}
+
+// Tests for static import.
+//
+// Static import should obey the worker-src directive and the script-src
+// directive. If the both directives are specified, the worker-src directive
+// should be prioritized.
+//
+// Step 1: "If the result of executing 6.6.1.11 Get the effective directive for
+// request on request is "worker-src", and policy contains a directive whose
+// name is "worker-src", return "Allowed"."
+// "Note: If worker-src is present, we’ll defer to it when handling worker
+// requests."
+// https://w3c.github.io/webappsec-csp/#script-src-pre-request
+
+import_csp_test(
+ "worker-src 'self' 'unsafe-inline'",
+ "static-import-remote-origin-script-worker.sub.js",
+ ['ERROR'],
+ "worker-src 'self' directive should disallow cross origin static import.");
+
+import_csp_test(
+ "worker-src * 'unsafe-inline'",
+ "static-import-remote-origin-script-worker.sub.js",
+ ["export-on-load-script.js"],
+ "worker-src * directive should allow cross origin static import.")
+
+import_csp_test(
+ "script-src 'self' 'unsafe-inline'",
+ "static-import-remote-origin-script-worker.sub.js",
+ ['ERROR'],
+ "script-src 'self' directive should disallow cross origin static import.");
+
+import_csp_test(
+ "script-src * 'unsafe-inline'",
+ "static-import-remote-origin-script-worker.sub.js",
+ ["export-on-load-script.js"],
+ "script-src * directive should allow cross origin static import.")
+
+import_csp_test(
+ "worker-src *; script-src 'self' 'unsafe-inline'",
+ "static-import-remote-origin-script-worker.sub.js",
+ ["export-on-load-script.js"],
+ "worker-src * directive should override script-src 'self' directive and " +
+ "allow cross origin static import.");
+
+import_csp_test(
+ "worker-src 'self'; script-src * 'unsafe-inline'",
+ "static-import-remote-origin-script-worker.sub.js",
+ ['ERROR'],
+ "worker-src 'self' directive should override script-src * directive and " +
+ "disallow cross origin static import.");
+
+// Tests for dynamic import.
+//
+// Dynamic import should obey the script-src directive instead of the worker-src
+// directive according to the specs:
+//
+// Dynamic import has the "script" destination.
+// Step 2.4: "Fetch a module script graph given url, ..., "script", ..."
+// https://html.spec.whatwg.org/multipage/webappapis.html#hostimportmoduledynamically(referencingscriptormodule,-specifier,-promisecapability)
+//
+// The "script" destination should obey the script-src CSP directive.
+// Step 2: "If request's destination is script-like:"
+// https://w3c.github.io/webappsec-csp/#script-src-pre-request
+
+import_csp_test(
+ "script-src 'self' 'unsafe-inline'",
+ "dynamic-import-remote-origin-script-worker.sub.js",
+ ['ERROR'],
+ "script-src 'self' directive should disallow cross origin dynamic import.");
+
+import_csp_test(
+ "script-src * 'unsafe-inline'",
+ "dynamic-import-remote-origin-script-worker.sub.js",
+ ["export-on-load-script.js"],
+ "script-src * directive should allow cross origin dynamic import.")
+
+import_csp_test(
+ "worker-src 'self' 'unsafe-inline'",
+ "dynamic-import-remote-origin-script-worker.sub.js",
+ ["export-on-load-script.js"],
+ "worker-src 'self' directive should not take effect on dynamic import.");
+
+</script>
diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html
index 316b01d789c..6603eb9be9b 100644
--- a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html
+++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html
@@ -17,61 +17,68 @@ function DetermineExpectedCookieValue(options) {
return 'COOKIE_VALUE';
assert_equals(options.type, 'module');
- if (!options.credentials || options.credentials == 'omit')
- return '';
- if (options.credentials == 'same-origin' || options.credentials == 'include')
+ if (!options.credentials ||
+ options.credentials == 'same-origin' ||
+ options.credentials == 'include') {
return 'COOKIE_VALUE';
+ }
+ if (options.credentials == 'omit')
+ return '';
assert_unreached('Invalid credentials option was specified: ' +
options.credentials);
}
// Runs a credentials test with the given WorkerOptions.
-async function runCredentialsTest(options) {
- const worker = new Worker('resources/credentials.py', options);
+function credentials_test(options, description) {
+ promise_test(async () => {
+ const worker = new Worker('resources/credentials.py', options);
- // Wait until the worker sends the actual cookie value.
- const msg_event = await new Promise(resolve => worker.onmessage = resolve);
+ // Wait until the worker sends the actual cookie value.
+ const msg_event = await new Promise(resolve => worker.onmessage = resolve);
- const expectedCookieValue = DetermineExpectedCookieValue(options);
- assert_equals(msg_event.data, expectedCookieValue);
+ const expectedCookieValue = DetermineExpectedCookieValue(options);
+ assert_equals(msg_event.data, expectedCookieValue);
+ }, description);
}
// Tests for module scripts.
-promise_test(() => runCredentialsTest({ type: 'module'}),
- 'new Worker() with the default credentials option should not send ' +
- 'the credentials');
+credentials_test(
+ { type: 'module'},
+ 'new Worker() with the default credentials option should behave as ' +
+ 'credentials=same-origin and send the credentials');
-promise_test(() => runCredentialsTest({ credentials: 'omit',
- type: 'module' }),
+credentials_test(
+ { credentials: 'omit', type: 'module' },
'new Worker() with credentials=omit should not send the credentials');
-promise_test(() => runCredentialsTest({ credentials: 'same-origin',
- type: 'module' }),
+credentials_test(
+ { credentials: 'same-origin', type: 'module' },
'new Worker() with credentials=same-origin should send the credentials');
-promise_test(() => runCredentialsTest({ credentials: 'include',
- type: 'module' }),
+credentials_test(
+ { credentials: 'include', type: 'module' },
'new Worker() with credentials=include should send the credentials');
// Tests for classic scripts.
-promise_test(() => runCredentialsTest({ type: 'classic' }),
+credentials_test(
+ { type: 'classic' },
'new Worker() with type=classic should always send the credentials ' +
'regardless of the credentials option (default).');
-promise_test(() => runCredentialsTest({ credentials: 'omit',
- type: 'classic' }),
+credentials_test(
+ { credentials: 'omit', type: 'classic' },
'new Worker() with type=classic should always send the credentials ' +
'regardless of the credentials option (omit).');
-promise_test(() => runCredentialsTest({ credentials: 'same-origin',
- type: 'classic' }),
+credentials_test(
+ { credentials: 'same-origin', type: 'classic' },
'new Worker() with type=classic should always send the credentials ' +
'regardless of the credentials option (same-origin).');
-promise_test(() => runCredentialsTest({ credentials: 'include',
- type: 'classic' }),
+credentials_test(
+ { credentials: 'include', type: 'classic' },
'new Worker() with type=classic should always send the credentials ' +
'regardless of the credentials option (include).');
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js
new file mode 100644
index 00000000000..0937086d72d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js
@@ -0,0 +1,4 @@
+// Import a remote origin script.
+import('https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/export-on-load-script.js')
+ .then(module => postMessage(module.importedModules))
+ .catch(e => postMessage(['ERROR']));
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/export-on-load-script.js.headers b/tests/wpt/web-platform-tests/workers/modules/resources/export-on-load-script.js.headers
new file mode 100644
index 00000000000..cb762eff806
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/export-on-load-script.js.headers
@@ -0,0 +1 @@
+Access-Control-Allow-Origin: *
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/new-worker-window.html b/tests/wpt/web-platform-tests/workers/modules/resources/new-worker-window.html
new file mode 100644
index 00000000000..5ae150725eb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/new-worker-window.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: new Worker()</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+let worker;
+
+// Creates a new dedicated worker for a given script url.
+window.onmessage = e => {
+ worker = new Worker(e.data, { type: 'module' });
+ worker.onmessage = msg => window.opener.postMessage(msg.data, '*');
+ worker.onerror = err => window.opener.postMessage(['ERROR'], '*');
+};
+window.opener.postMessage('LOADED', '*');
+</script>
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js
new file mode 100644
index 00000000000..00ef44eff58
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js
@@ -0,0 +1,3 @@
+// Import a remote origin script.
+import * as module from 'https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/export-on-load-script.js';
+postMessage(module.importedModules);