mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision 0317e9a8591851f97d59c9de28c46ea1c2a25f88
This commit is contained in:
parent
7aa68c8fe7
commit
3214f9ea94
52 changed files with 507 additions and 314 deletions
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
|
@ -15,3 +15,6 @@
|
|||
[Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.]
|
||||
expected: FAIL
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in <script> tags.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -2,8 +2,14 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[url-with-fetch.any.html]
|
||||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -20343,6 +20343,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"content-dpr/tiled-background-svg-image-with-content-dpr.html": [
|
||||
[
|
||||
"content-dpr/tiled-background-svg-image-with-content-dpr.html",
|
||||
[
|
||||
[
|
||||
"/content-dpr/tiled-background-image-with-content-dpr-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/abspos/abspos-containing-block-initial-001.xht": [
|
||||
[
|
||||
"css/CSS2/abspos/abspos-containing-block-initial-001.xht",
|
||||
|
@ -229485,6 +229497,9 @@
|
|||
"content-dpr/resources/background.png": [
|
||||
[]
|
||||
],
|
||||
"content-dpr/resources/background.svg": [
|
||||
[]
|
||||
],
|
||||
"content-dpr/resources/dpr.py": [
|
||||
[]
|
||||
],
|
||||
|
@ -229494,6 +229509,9 @@
|
|||
"content-dpr/tiled-background-image-with-content-dpr-ref.html": [
|
||||
[]
|
||||
],
|
||||
"content-dpr/tiled-background-svg-image-with-content-dpr-ref.html": [
|
||||
[]
|
||||
],
|
||||
"content-security-policy/META.yml": [
|
||||
[]
|
||||
],
|
||||
|
@ -268890,6 +268908,9 @@
|
|||
"fetch/http-cache/resources/split-origin-popup.html": [
|
||||
[]
|
||||
],
|
||||
"fetch/metadata/META.yml": [
|
||||
[]
|
||||
],
|
||||
"fetch/metadata/README.md": [
|
||||
[]
|
||||
],
|
||||
|
@ -362860,6 +362881,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html": [
|
||||
[
|
||||
"html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"html/semantics/embedded-content/the-iframe-element/iframe_remove_src.html": [
|
||||
[
|
||||
"html/semantics/embedded-content/the-iframe-element/iframe_remove_src.html",
|
||||
|
@ -372564,9 +372591,9 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"longtask-timing/buffered-flag-unsupported.window.js": [
|
||||
"longtask-timing/buffered-flag.window.js": [
|
||||
[
|
||||
"longtask-timing/buffered-flag-unsupported.window.html",
|
||||
"longtask-timing/buffered-flag.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
|
@ -415371,6 +415398,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/begin-attribute-mutation.html": [
|
||||
[
|
||||
"svg/animations/begin-attribute-mutation.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/beginelement-instance-time-1.html": [
|
||||
[
|
||||
"svg/animations/beginelement-instance-time-1.html",
|
||||
|
@ -415407,6 +415440,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/cyclic-syncbase-2.html": [
|
||||
[
|
||||
"svg/animations/cyclic-syncbase-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/cyclic-syncbase.html": [
|
||||
[
|
||||
"svg/animations/cyclic-syncbase.html",
|
||||
|
@ -460837,7 +460876,7 @@
|
|||
"support"
|
||||
],
|
||||
".taskcluster.yml": [
|
||||
"cc07b1d67117e98ca098dc9fc5a33497cd9faaf6",
|
||||
"8bdbabb9e2a6ddbc367f54c205ee25139a002cfe",
|
||||
"support"
|
||||
],
|
||||
".well-known/README.md": [
|
||||
|
@ -490132,6 +490171,10 @@
|
|||
"6db6c6b1b9d851c7a85b93ddc9e5ddf368ac0a7e",
|
||||
"support"
|
||||
],
|
||||
"content-dpr/resources/background.svg": [
|
||||
"b2c544ed2d0ebf8a90bc2311e45ac4a69ffea08c",
|
||||
"support"
|
||||
],
|
||||
"content-dpr/resources/dpr.py": [
|
||||
"14d7d550fe28d49a63105ea966d3cf7cf59901b1",
|
||||
"support"
|
||||
|
@ -490148,6 +490191,14 @@
|
|||
"94f2f72d40196749faf6092d178f67dfc7067dcb",
|
||||
"reftest"
|
||||
],
|
||||
"content-dpr/tiled-background-svg-image-with-content-dpr-ref.html": [
|
||||
"cd8c7d3ea985655040ec62bb426080bbfac2359f",
|
||||
"support"
|
||||
],
|
||||
"content-dpr/tiled-background-svg-image-with-content-dpr.html": [
|
||||
"56948ea286b8c9869863e139147348056727fa20",
|
||||
"reftest"
|
||||
],
|
||||
"content-security-policy/META.yml": [
|
||||
"ee8f1ea7e07b94711ddc65e43a6c32dbc5983612",
|
||||
"support"
|
||||
|
@ -603881,7 +603932,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/css-transforms/parsing/translate-parsing-valid.html": [
|
||||
"f15fdf0c4fb4ad004db749f622747a0035dcc909",
|
||||
"04440d552c0668c72c7b028ad22eee892cf4ea61",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-transforms/patternTransform/reference/svg-patternTransform-combination-ref.html": [
|
||||
|
@ -643020,6 +643071,10 @@
|
|||
"32a387288af1db934458bcc77512c388ec2ab168",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/metadata/META.yml": [
|
||||
"96d1392b3b71ae36876347799a3e4f217c59a020",
|
||||
"support"
|
||||
],
|
||||
"fetch/metadata/README.md": [
|
||||
"34864d4a4b6bd911f496026ada7bdc41ba3a6905",
|
||||
"support"
|
||||
|
@ -657840,6 +657895,10 @@
|
|||
"fd65f932982907bf62ab6455c9ab94612b0dca7a",
|
||||
"testharness"
|
||||
],
|
||||
"html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html": [
|
||||
"5e3b7682cc8dd45a22bb74b5f7b11a6a4a728d72",
|
||||
"testharness"
|
||||
],
|
||||
"html/semantics/embedded-content/the-iframe-element/iframe_remove_src.html": [
|
||||
"f0ff9ff5082d849d6b987a8ee4b46d5d0d1794e5",
|
||||
"testharness"
|
||||
|
@ -665877,11 +665936,11 @@
|
|||
"support"
|
||||
],
|
||||
"infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini": [
|
||||
"1d63261c554f96705801a92871a6159b1f0d5ea0",
|
||||
"358c6f0902e88fc61d24368b0d0874d318ae92d3",
|
||||
"support"
|
||||
],
|
||||
"infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini": [
|
||||
"4f1939a431ae272024f62a4169bf8431efc2c5bb",
|
||||
"83ade1dddf02b0e9d9df5721338bd68c0d0acac3",
|
||||
"support"
|
||||
],
|
||||
"infrastructure/metadata/infrastructure/testdriver/actions/pause.html.ini": [
|
||||
|
@ -667640,8 +667699,8 @@
|
|||
"91c07f9fd3f3097367f2ad87a2ebb0d98b11d4e2",
|
||||
"support"
|
||||
],
|
||||
"longtask-timing/buffered-flag-unsupported.window.js": [
|
||||
"ea17b824c355ace2b67ccefc1ddbf25e03a299d0",
|
||||
"longtask-timing/buffered-flag.window.js": [
|
||||
"dafce7ea3bb2f3d7f4691bc6ca8bde439246abe2",
|
||||
"testharness"
|
||||
],
|
||||
"longtask-timing/idlharness.window.js": [
|
||||
|
@ -695433,7 +695492,7 @@
|
|||
"support"
|
||||
],
|
||||
"resources/chromium/nfc-mock.js": [
|
||||
"b1de419ca20d67bc2e69d6a54a6fbff7d400912b",
|
||||
"224a6078c1e0d95299d1e3a2e79c6bf3f7614b5f",
|
||||
"support"
|
||||
],
|
||||
"resources/chromium/sensor.mojom.js": [
|
||||
|
@ -701700,6 +701759,10 @@
|
|||
"7a9ad43dd98e00f7e2af4957365441a29aedf8e6",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/begin-attribute-mutation.html": [
|
||||
"f28c8e9ad1ab06ae10cb9a6e883bd80ff58a8974",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/beginelement-instance-time-1.html": [
|
||||
"aa1cb8c983d482439fccc6d91b50e69585f4d404",
|
||||
"testharness"
|
||||
|
@ -701724,6 +701787,10 @@
|
|||
"19e7eef8c1ce470d67c2eaecf2f07a9d2907f2c1",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/cyclic-syncbase-2.html": [
|
||||
"f48bbffa8599ae0f83f7977707027b75396cd3ce",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/cyclic-syncbase.html": [
|
||||
"c0351156e310a8a6f0fca3ebee506b80983a53bb",
|
||||
"testharness"
|
||||
|
@ -706501,7 +706568,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/ci/tc/decision.py": [
|
||||
"a3c47aa404990253f556a9cf59bd7c6237ffece3",
|
||||
"92a27ef79ab3fb49aff79197ca503b7a766c8c03",
|
||||
"support"
|
||||
],
|
||||
"tools/ci/tc/download.py": [
|
||||
|
@ -707265,7 +707332,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/requirements_mypy.txt": [
|
||||
"31545c2f0747a9c20d77b50d27096a4ecafd4351",
|
||||
"194f4284b26903b1faf969b6ab5d30f5c48eb562",
|
||||
"support"
|
||||
],
|
||||
"tools/runner/css/bootstrap-theme.min.css": [
|
||||
|
@ -718425,7 +718492,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"web-nfc/NDEFRecord_constructor.https.html": [
|
||||
"ea7b5e4950866ff7eeed5fd4ed127460b5ef6c33",
|
||||
"1b2dda9bfc87da146c3b3562dff64568fb68f9b1",
|
||||
"testharness"
|
||||
],
|
||||
"web-nfc/NDEFWriter-document-hidden-manual.https.html": [
|
||||
|
@ -718433,7 +718500,7 @@
|
|||
"manual"
|
||||
],
|
||||
"web-nfc/NDEFWriter_push.https.html": [
|
||||
"6c7aca9fe938184bbc7090339be86a790454c7b6",
|
||||
"a33b1fab3034af2058a133e8182086dc2cb2dfbe",
|
||||
"testharness"
|
||||
],
|
||||
"web-nfc/README.md": [
|
||||
|
@ -718449,7 +718516,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"web-nfc/resources/nfc-helpers.js": [
|
||||
"0fe6fe80cb1cec7ef582bae5d7974bce9d1d8596",
|
||||
"3ce725a7c475b28d96f15dfd12736ed8a54f0006",
|
||||
"support"
|
||||
],
|
||||
"web-nfc/resources/support-iframe.html": [
|
||||
|
|
|
@ -5,6 +5,3 @@
|
|||
[Serialization should round-trip after setting e.style['translate'\] = "1px 2px 0"]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['translate'\] = "100px calc(10px - 10%)" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,21 +312,21 @@
|
|||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,12 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[Content-Type-Options%3A%20nosniff]
|
||||
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -8,8 +8,14 @@
|
|||
expected: FAIL
|
||||
|
||||
[Embedded credentials are treated as network errors in new windows.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
|
||||
expected: FAIL
|
||||
|
||||
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Embedded credentials matching the top-level are not treated as network errors for same-origin URLs.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Embedded credentials matching the top-level are not treated as network errors for relative URLs.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-innerwidth-innerheight.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=-404.5" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404.5" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=-404e1" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=-404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404e1" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-screenx-screeny.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=-204" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-204" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-204.5" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-0" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=-0" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=-204.5" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-innerheight.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-innerwidth.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e-1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405*3" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.32" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405 " should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405LLl" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405/5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405^4" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=/404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=_404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=L404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-left.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `left`]
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105e1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105 " should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105/5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105e-1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105^4" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105LLl" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105.32" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105*3" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105.5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=L104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=/104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=_104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-screenx.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105.5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105e1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105 " should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105*3" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105e-1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105^4" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105LLl" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105/5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105.32" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=_104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=L104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=/104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-screeny.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-top.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `top`]
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105/5" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105*3" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105LLl" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105e-1" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105.32" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105e1" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105 " should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105^4" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105.5" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=/104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=_104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=L104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,48 +1,32 @@
|
|||
[open-features-non-integer-width.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `width`]
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405^4" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405.5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405e1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405 " should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405.32" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405LLl" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405*3" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405e-1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405/5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=_404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=/404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=L404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener and "removed" embedded documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -10,7 +9,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[form-double-submit.html]
|
||||
expected: ERROR
|
||||
[default submit action should supersede onclick submit()]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[size.large.html]
|
||||
expected: CRASH
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[WorkerGlobalScope-close.html]
|
||||
[Test sending a message after closing.]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[import-in-moduleworker.html]
|
||||
expected: ERROR
|
||||
[Base URL in module dedicated workers: import]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[sharedworker-in-worker.html]
|
||||
expected: ERROR
|
||||
[Base URL in workers: new SharedWorker()]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -3,17 +3,6 @@ policy:
|
|||
pullRequests: public
|
||||
tasks:
|
||||
$let:
|
||||
event_str: {$json: {$eval: event}}
|
||||
scopes:
|
||||
$if: 'tasks_for == "github-push"'
|
||||
then:
|
||||
$let:
|
||||
branch:
|
||||
$if: "event.ref[:11] == 'refs/heads/'"
|
||||
then: "${event.ref[11:]}"
|
||||
else: "${event.ref}"
|
||||
in: "assume:repo:github.com/${event.repository.full_name}:branch:${branch}"
|
||||
else: "assume:repo:github.com/${event.repository.full_name}:pull-request"
|
||||
run_task:
|
||||
$if: 'tasks_for == "github-push"'
|
||||
then:
|
||||
|
@ -27,43 +16,66 @@ tasks:
|
|||
then: true
|
||||
else: false
|
||||
else: false
|
||||
rev:
|
||||
$if: 'tasks_for == "github-pull-request"'
|
||||
then: "refs/pull/${event.number}/merge"
|
||||
else: "${event.after}"
|
||||
in:
|
||||
- $if: run_task
|
||||
then:
|
||||
created: {$fromNow: ''}
|
||||
deadline: {$fromNow: '24 hours'}
|
||||
provisionerId: proj-wpt
|
||||
workerType: ci
|
||||
metadata:
|
||||
name: "wpt-decision-task"
|
||||
description: "The task that creates all of the other tasks in the task graph"
|
||||
owner: "${event.sender.login}@users.noreply.github.com"
|
||||
source: ${event.repository.clone_url}
|
||||
payload:
|
||||
image: harjgam/web-platform-tests:0.33
|
||||
maxRunTime: 7200
|
||||
artifacts:
|
||||
public/results:
|
||||
path: /home/test/artifacts
|
||||
type: directory
|
||||
command:
|
||||
- /bin/bash
|
||||
- --login
|
||||
- -c
|
||||
- set -ex;
|
||||
~/start.sh
|
||||
${event.repository.clone_url}
|
||||
${rev};
|
||||
cd ~/web-platform-tests;
|
||||
./wpt tc-decision --tasks-path=/home/test/artifacts/tasks.json
|
||||
features :
|
||||
taskclusterProxy: true
|
||||
scopes:
|
||||
- ${scopes}
|
||||
extra:
|
||||
github_event: "${event_str}"
|
||||
$let:
|
||||
event_str: {$json: {$eval: event}}
|
||||
scopes:
|
||||
$if: 'tasks_for == "github-push"'
|
||||
then:
|
||||
$let:
|
||||
branch:
|
||||
$if: "event.ref[:11] == 'refs/heads/'"
|
||||
then: "${event.ref[11:]}"
|
||||
else: "${event.ref}"
|
||||
in: "assume:repo:github.com/${event.repository.full_name}:branch:${branch}"
|
||||
else: "assume:repo:github.com/${event.repository.full_name}:pull-request"
|
||||
rev:
|
||||
$if: 'tasks_for == "github-pull-request"'
|
||||
then: "refs/pull/${event.number}/merge"
|
||||
else: "${event.after}"
|
||||
owner:
|
||||
$if: 'tasks_for == "github-push"'
|
||||
then:
|
||||
$if: 'event.pusher.email'
|
||||
then:
|
||||
$if: '"@" in event.pusher.email'
|
||||
then: ${event.pusher.email}
|
||||
else: web-platform-tests@users.noreply.github.com
|
||||
else: web-platform-tests@users.noreply.github.com
|
||||
else: web-platform-tests@users.noreply.github.com
|
||||
in:
|
||||
created: {$fromNow: ''}
|
||||
deadline: {$fromNow: '24 hours'}
|
||||
provisionerId: proj-wpt
|
||||
workerType: ci
|
||||
metadata:
|
||||
name: "wpt-decision-task"
|
||||
description: "The task that creates all of the other tasks in the task graph"
|
||||
owner: ${owner}
|
||||
source: ${event.repository.clone_url}
|
||||
payload:
|
||||
image: harjgam/web-platform-tests:0.33
|
||||
maxRunTime: 7200
|
||||
artifacts:
|
||||
public/results:
|
||||
path: /home/test/artifacts
|
||||
type: directory
|
||||
command:
|
||||
- /bin/bash
|
||||
- --login
|
||||
- -c
|
||||
- set -ex;
|
||||
~/start.sh
|
||||
${event.repository.clone_url}
|
||||
${rev};
|
||||
cd ~/web-platform-tests;
|
||||
./wpt tc-decision --tasks-path=/home/test/artifacts/tasks.json
|
||||
features :
|
||||
taskclusterProxy: true
|
||||
scopes:
|
||||
- ${scopes}
|
||||
extra:
|
||||
github_event: "${event_str}"
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" standalone="yes"?>
|
||||
|
||||
<svg version="1.1" viewBox="0 0 32 32" width="32" height="32" fill="none" stroke="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<rect x="0" y="0" width="16" height="16" fill="#c0c0c0" />
|
||||
<rect x="16" y="0" width="16" height="16" fill="#ffffff" />
|
||||
<rect x="0" y="16" width="16" height="16" fill="#ffffff" />
|
||||
<rect x="16" y="16" width="16" height="16" fill="#c0c0c0" />
|
||||
</svg>
|
After Width: | Height: | Size: 454 B |
|
@ -0,0 +1,29 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Content-DPR: css tiled background</title>
|
||||
<link rel="author" title="Noam Rosenthal" href="noam@webkit.org">
|
||||
<meta name="assert" content="Assert that content-dpr is taken into account for tiled background images">
|
||||
<style>
|
||||
#bg, #bg2 {
|
||||
background-image: url(resources/background.svg);
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
#bg {
|
||||
background-size: 16px 16px;
|
||||
}
|
||||
|
||||
#bg2 {
|
||||
background-size: 8px 8px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
The next div should have 16 boxes
|
||||
<div id="bg">
|
||||
</div>
|
||||
The next div should have 64 boxes
|
||||
<div id="bg2">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,27 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Content-DPR: css tiled background</title>
|
||||
<link rel="author" title="Noam Rosenthal" href="noam@webkit.org">
|
||||
<link rel="match" href="tiled-background-image-with-content-dpr-ref.html" />
|
||||
<meta name="assert" content="Assert that content-dpr is taken into account for tiled background images">
|
||||
<style>
|
||||
#bg, #bg2 {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
background-image: url(resources/dpr.py?name=background.svg&mimeType=image/svg%2Bxml&dpr=2.0);
|
||||
}
|
||||
|
||||
#bg2 {
|
||||
background-size: 8px 8px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
The next div should have 16 boxes
|
||||
<div id="bg">
|
||||
</div>
|
||||
The next div should have 64 boxes
|
||||
<div id="bg2">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -19,7 +19,7 @@ test_valid_value("translate", "100%");
|
|||
test_valid_value("translate", "100px 0px", "100px");
|
||||
test_valid_value("translate", "100px 0.1px", "100px 0.1px");
|
||||
test_valid_value("translate", "100px 0%", "100px");
|
||||
test_valid_value("translate", "100px calc(10px - 10%)", "100px calc(10px - 10%)");
|
||||
test_valid_value("translate", "100px calc(10px - 10%)", "100px calc(-10% + 10px)");
|
||||
test_valid_value("translate", "100px 200%");
|
||||
test_valid_value("translate", "100% 200px");
|
||||
|
||||
|
|
5
tests/wpt/web-platform-tests/fetch/metadata/META.yml
Normal file
5
tests/wpt/web-platform-tests/fetch/metadata/META.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
suggested_reviewers:
|
||||
- zcorpan
|
||||
- jugglinmike
|
||||
- mikewest
|
||||
- iVanlIsh
|
|
@ -0,0 +1,12 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
async_test(t => {
|
||||
window.addEventListener('message', t.step_func_done(e => {
|
||||
assert_equals(e.data, "can navigate");
|
||||
}));
|
||||
}, "A => B => B: B should be able to navigate B.");
|
||||
</script>
|
||||
<iframe src="https://{{hosts[][www]}}:{{ports[https][0]}}/html/semantics/embedded-content/the-iframe-element/support/iframe-tried-to-be-navigated-by-its-child.html"></iframe>
|
|
@ -1,6 +1,7 @@
|
|||
[multiTouchPoints.html]
|
||||
expected:
|
||||
if product == "firefox" or product == "safari" or product == "epiphany" or product == "webkit": ERROR
|
||||
if product == "chrome" and os == "mac": ERROR
|
||||
[TestDriver actions: two touch points with one moving one pause]
|
||||
expected:
|
||||
if product == "chrome" and os != "mac": FAIL
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[multiTouchPointsWithPause.html]
|
||||
expected:
|
||||
if product == "firefox" or product == "safari": ERROR
|
||||
if product == "chrome" and os == "mac": ERROR
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
async_test(t => {
|
||||
if (!window.PerformanceLongTaskTiming) {
|
||||
assert_unreached("Longtasks are not supported.");
|
||||
}
|
||||
new PerformanceObserver(t.step_func(entryList => {
|
||||
const observer = new PerformanceObserver(t.step_func_done(list => {
|
||||
list.getEntries().forEach(entry => {
|
||||
assert_not_equals(entry.entryType, 'longtask');
|
||||
});
|
||||
}));
|
||||
observer.observe({type: 'longtask', buffered: true});
|
||||
observer.observe({type: 'mark'});
|
||||
// Create a mark to ensure the |observer|'s callback is dispatched.
|
||||
performance.mark('a');
|
||||
})).observe({entryTypes: ['longtask']});
|
||||
// Create a long task.
|
||||
const begin = window.performance.now();
|
||||
while (window.performance.now() < begin + 60);
|
||||
}, 'PerformanceObserver with buffered flag cannot see previous longtask entries.');
|
|
@ -0,0 +1,26 @@
|
|||
async_test(t => {
|
||||
assert_precondition(window.PerformanceLongTaskTiming, 'Longtasks are not supported.');
|
||||
new PerformanceObserver(t.step_func((entryList, obs) => {
|
||||
const observer = new PerformanceObserver(t.step_func_done(list => {
|
||||
let longtaskObserved = false;
|
||||
list.getEntries().forEach(entry => {
|
||||
if (entry.entryType === 'mark')
|
||||
return;
|
||||
assert_equals(entry.entryType, 'longtask');
|
||||
assert_equals(entry.name, 'self');
|
||||
assert_greater_than(longtask.duration, 50);
|
||||
longtaskObserved = true;
|
||||
});
|
||||
assert_true(longtaskObserved, 'Did not observe buffered longtask.');
|
||||
}));
|
||||
observer.observe({type: 'longtask', buffered: true});
|
||||
// Observer mark so that we can flush the observer callback.
|
||||
observer.observe({type: 'mark'});
|
||||
performance.mark('m');
|
||||
// Disconnect the embedding observer so this callback only runs once.
|
||||
obs.disconnect();
|
||||
})).observe({entryTypes: ['longtask']});
|
||||
// Create a long task.
|
||||
const begin = window.performance.now();
|
||||
while (window.performance.now() < begin + 60);
|
||||
}, 'PerformanceObserver with buffered flag can see previous longtask entries.');
|
|
@ -27,6 +27,7 @@ function toMojoNDEFRecord(record) {
|
|||
let nfcRecord = new device.mojom.NDEFRecord();
|
||||
nfcRecord.recordType = record.recordType;
|
||||
nfcRecord.mediaType = record.mediaType;
|
||||
nfcRecord.id = record.id;
|
||||
nfcRecord.data = toByteArray(record.data);
|
||||
if (record.data != null && record.data.records !== undefined) {
|
||||
// |record.data| may be an NDEFMessageInit, i.e. the payload is a message.
|
||||
|
@ -59,6 +60,12 @@ function toByteArray(data) {
|
|||
function compareNDEFRecords(providedRecord, receivedRecord) {
|
||||
assert_equals(providedRecord.recordType, receivedRecord.recordType);
|
||||
|
||||
if (providedRecord.id === undefined) {
|
||||
assert_equals(null, receivedRecord.id);
|
||||
} else {
|
||||
assert_equals(providedRecord.id, receivedRecord.id);
|
||||
}
|
||||
|
||||
if (providedRecord.mediaType === undefined) {
|
||||
assert_equals(null, receivedRecord.mediaType);
|
||||
} else {
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Mutating the 'begin' attribute after the element has started</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<svg>
|
||||
<rect width="100" height="100" fill="blue">
|
||||
<animate id="anim" attributeName="x" values="100; 0"
|
||||
begin="0s" dur="50ms" fill="freeze"/>
|
||||
</rect>
|
||||
</svg>
|
||||
<script>
|
||||
async_test(function(t) {
|
||||
let anim = document.getElementById("anim");
|
||||
anim.endEventsReceived = 0;
|
||||
anim.addEventListener('endEvent', t.step_func(function() {
|
||||
anim.endEventsReceived++;
|
||||
if (anim.endEventsReceived)
|
||||
t.done();
|
||||
}));
|
||||
onload = function() {
|
||||
// Allow some time to pass before mutating 'begin'. This should ensure
|
||||
// that the element has started.
|
||||
requestAnimationFrame(function() {
|
||||
anim.ownerSVGElement.setCurrentTime(0);
|
||||
anim.setAttribute("begin", "50ms");
|
||||
});
|
||||
};
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Cyclic syncbase dependency with syncbase trigger</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<svg>
|
||||
<rect width="100" height="100" fill="blue">
|
||||
<animate attributeName="fill" from="yellow" to="blue" id="a"
|
||||
begin="c.end; b.begin" dur="10ms"/>
|
||||
</rect>
|
||||
<rect width="100" height="100" x="100" fill="blue">
|
||||
<animate attributeName="fill" from="yellow" to="blue" id="b"
|
||||
begin="c.end; a.begin" dur="10ms"/>
|
||||
</rect>
|
||||
<rect width="100" height="100" x="200" fill="blue">
|
||||
<animate attributeName="fill" from="yellow" to="blue" id="c"
|
||||
begin="0; 15ms" dur="10ms"/>
|
||||
</rect>
|
||||
</svg>
|
||||
<script>
|
||||
async_test(function(t) {
|
||||
let a = document.getElementById('a');
|
||||
a.ended = 0;
|
||||
a.addEventListener('endEvent', t.step_func(function() {
|
||||
a.ended++;
|
||||
if (a.ended === 2)
|
||||
t.done();
|
||||
}));
|
||||
});
|
||||
</script>
|
|
@ -194,9 +194,10 @@ cd web-platform-tests;
|
|||
|
||||
|
||||
def get_owner(event):
|
||||
pusher = event.get("pusher", {}).get("email", "")
|
||||
if "@" in pusher:
|
||||
return pusher
|
||||
if "pusher" in event:
|
||||
pusher = event.get("pusher", {}).get("email", "")
|
||||
if pusher and "@" in pusher:
|
||||
return pusher
|
||||
return "web-platform-tests@users.noreply.github.com"
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
mypy==0.740
|
||||
mypy==0.750
|
||||
mypy-extensions==0.4.3
|
||||
typed-ast==1.4.0
|
||||
|
|
|
@ -18,29 +18,56 @@
|
|||
|
||||
test(() => {
|
||||
assert_throws(new TypeError, () => new NDEFRecord(
|
||||
createRecord('empty', test_text_data, 'text/plain')),
|
||||
createRecord('empty', test_text_data, test_record_id, 'text/plain')),
|
||||
'mediaType does not apply for empty record type.');
|
||||
assert_throws(new TypeError, () => new NDEFRecord(
|
||||
createRecord('text', test_text_data, 'text/plain')),
|
||||
createRecord('text', test_text_data, test_record_id, 'text/plain')),
|
||||
'mediaType does not apply for text record type.');
|
||||
assert_throws(new TypeError, () => new NDEFRecord(
|
||||
createRecord('url', test_url_data, 'text/plain')),
|
||||
createRecord('url', test_url_data, test_record_id, 'text/plain')),
|
||||
'mediaType does not apply for url record type.');
|
||||
assert_throws(new TypeError, () => new NDEFRecord(
|
||||
createRecord('absolute-url', test_url_data, 'text/plain')),
|
||||
createRecord('absolute-url', test_url_data, test_record_id, 'text/plain')),
|
||||
'mediaType does not apply for absolute-url record type.');
|
||||
assert_throws(new TypeError, () => new NDEFRecord(
|
||||
createRecord('unknown', test_buffer_data, 'application/octet-stream')),
|
||||
createRecord('unknown', test_buffer_data, test_record_id, 'application/octet-stream')),
|
||||
'mediaType does not apply for unknown record type.');
|
||||
assert_throws(new TypeError, () => new NDEFRecord(
|
||||
createRecord('foo.example.com:bar', test_buffer_data, 'application/octet-stream')),
|
||||
createRecord('foo.example.com:bar', test_buffer_data, test_record_id, 'application/octet-stream')),
|
||||
'mediaType does not apply for external record type.');
|
||||
}, 'NDEFRecord constructor should only accept mediaType for mime record type');
|
||||
|
||||
test(() => {
|
||||
{
|
||||
const record = new NDEFRecord(createRecord('text', test_text_data));
|
||||
assert_equals(record.id, null, 'id');
|
||||
}
|
||||
{
|
||||
const record = new NDEFRecord(createRecord('text', test_text_data, ''));
|
||||
assert_equals(record.id, '', 'id');
|
||||
}
|
||||
{
|
||||
const dummy_id = 'https://dummy_host/mypath/myid';
|
||||
const record = new NDEFRecord(createRecord('text', test_text_data, dummy_id));
|
||||
assert_equals(record.id, dummy_id, 'id');
|
||||
}
|
||||
{
|
||||
const dummy_id = 'http://dummy_host/mypath/myid';
|
||||
const record = new NDEFRecord(createRecord('text', test_text_data, dummy_id));
|
||||
assert_equals(record.id, dummy_id, 'id');
|
||||
}
|
||||
{
|
||||
const dummy_id = 'mypath/myid';
|
||||
const record = new NDEFRecord(createRecord('text', test_text_data, dummy_id));
|
||||
assert_equals(record.id, dummy_id, 'id');
|
||||
}
|
||||
}, 'NDEFRecord constructor with custom record ids');
|
||||
|
||||
test(() => {
|
||||
const record = new NDEFRecord(createTextRecord(test_text_data));
|
||||
assert_equals(record.recordType, 'text', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_equals(record.encoding, 'utf-8', 'encoding');
|
||||
assert_equals(record.lang, 'en', 'lang');
|
||||
const decoder = new TextDecoder();
|
||||
|
@ -56,6 +83,7 @@
|
|||
const record = new NDEFRecord(createTextRecord(uint8Array.buffer));
|
||||
assert_equals(record.recordType, 'text', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_equals(record.encoding, 'utf-8', 'encoding');
|
||||
assert_equals(record.lang, 'en', 'lang');
|
||||
const decoder = new TextDecoder();
|
||||
|
@ -71,6 +99,7 @@
|
|||
const record = new NDEFRecord(createTextRecord(uint8Array));
|
||||
assert_equals(record.recordType, 'text', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_equals(record.encoding, 'utf-8', 'encoding');
|
||||
assert_equals(record.lang, 'en', 'lang');
|
||||
const decoder = new TextDecoder();
|
||||
|
@ -87,6 +116,7 @@
|
|||
const record = new NDEFRecord(createTextRecord(test_text_data, encoding, lang));
|
||||
assert_equals(record.recordType, 'text', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_equals(record.encoding, encoding, 'encoding');
|
||||
assert_equals(record.lang, lang, 'lang');
|
||||
const decoder = new TextDecoder();
|
||||
|
@ -105,6 +135,7 @@
|
|||
const record = new NDEFRecord(createTextRecord(test_text_data));
|
||||
assert_equals(record.recordType, 'text', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_equals(record.encoding, 'utf-8', 'encoding');
|
||||
assert_equals(record.lang, test_lang, 'lang');
|
||||
const decoder = new TextDecoder();
|
||||
|
@ -116,6 +147,7 @@
|
|||
const record = new NDEFRecord(createUrlRecord(test_url_data));
|
||||
assert_equals(record.recordType, 'url', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
const decoder = new TextDecoder();
|
||||
assert_equals(decoder.decode(record.data), test_url_data,
|
||||
'data has the same content with the original dictionary');
|
||||
|
@ -127,6 +159,7 @@
|
|||
const record = new NDEFRecord(createUrlRecord(test_url_data, true));
|
||||
assert_equals(record.recordType, 'absolute-url', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
const decoder = new TextDecoder();
|
||||
assert_equals(decoder.decode(record.data), test_url_data,
|
||||
'data has the same content with the original dictionary');
|
||||
|
@ -146,6 +179,7 @@
|
|||
const record = new NDEFRecord(createMimeRecord(buffer));
|
||||
assert_equals(record.recordType, 'mime', 'recordType');
|
||||
assert_equals(record.mediaType, 'application/octet-stream', 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_array_equals(new Uint8Array(record.data.buffer), [1, 2, 3, 4],
|
||||
'data has the same content with the original buffer');
|
||||
assert_throws('NotSupportedError', () => record.toRecords(),
|
||||
|
@ -156,6 +190,7 @@
|
|||
let buffer_view = new Uint8Array(buffer, 1);
|
||||
const record = new NDEFRecord(createMimeRecord(buffer_view));
|
||||
assert_equals(record.recordType, 'mime', 'recordType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_array_equals(new Uint8Array(record.data.buffer), [2, 3, 4],
|
||||
'data has the same content with the original buffer view');
|
||||
assert_throws('NotSupportedError', () => record.toRecords(),
|
||||
|
@ -167,6 +202,7 @@
|
|||
const record = new NDEFRecord(createMimeRecordFromJson(test_json_data));
|
||||
assert_equals(record.recordType, 'mime', 'recordType');
|
||||
assert_equals(record.mediaType, 'application/json', 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_object_equals(JSON.parse(new TextDecoder().decode(record.data)),
|
||||
test_json_data,
|
||||
'data has the same content with the original json');
|
||||
|
@ -185,6 +221,7 @@
|
|||
{
|
||||
const record = new NDEFRecord(createUnknownRecord(buffer));
|
||||
assert_equals(record.recordType, 'unknown', 'recordType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_array_equals(new Uint8Array(record.data.buffer), [1, 2, 3, 4],
|
||||
'data has the same content with the original buffer');
|
||||
assert_throws('NotSupportedError', () => record.toRecords(),
|
||||
|
@ -195,6 +232,7 @@
|
|||
let buffer_view = new Uint8Array(buffer, 1);
|
||||
const record = new NDEFRecord(createUnknownRecord(buffer_view));
|
||||
assert_equals(record.recordType, 'unknown', 'recordType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_array_equals(new Uint8Array(record.data.buffer), [2, 3, 4],
|
||||
'data has the same content with the original buffer view');
|
||||
assert_throws('NotSupportedError', () => record.toRecords(),
|
||||
|
@ -211,9 +249,10 @@
|
|||
new Uint8Array(buffer).set([1, 2, 3, 4]);
|
||||
// Feed ArrayBuffer.
|
||||
{
|
||||
const record = new NDEFRecord(createRecord('foo.eXamPle.coM:bAr*-', buffer));
|
||||
const record = new NDEFRecord(createRecord('foo.eXamPle.coM:bAr*-', buffer, test_record_id));
|
||||
assert_equals(record.recordType, 'foo.example.com:bAr*-', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_array_equals(new Uint8Array(record.data.buffer), [1, 2, 3, 4],
|
||||
'data has the same content with the original buffer');
|
||||
assert_equals(record.toRecords(), null,
|
||||
|
@ -222,9 +261,11 @@
|
|||
// Feed ArrayBufferView.
|
||||
{
|
||||
let buffer_view = new Uint8Array(buffer, 1);
|
||||
const record = new NDEFRecord(createRecord('foo.eXamPle.coM:bAr*-', buffer_view));
|
||||
const record = new NDEFRecord(createRecord(
|
||||
'foo.eXamPle.coM:bAr*-', buffer_view, test_record_id));
|
||||
assert_equals(record.recordType, 'foo.example.com:bAr*-', 'recordType');
|
||||
assert_equals(record.mediaType, null, 'mediaType');
|
||||
assert_equals(record.id, test_record_id, 'id');
|
||||
assert_array_equals(new Uint8Array(record.data.buffer), [2, 3, 4],
|
||||
'data has the same content with the original buffer view');
|
||||
assert_equals(record.toRecords(), null,
|
||||
|
|
|
@ -30,7 +30,6 @@ const invalid_type_messages =
|
|||
// NDEFRecord.data for 'text' record must be either a string,
|
||||
// an arrayBuffer, or an arrayBufferView.
|
||||
createMessage([createTextRecord(test_json_data)]),
|
||||
createMessage([createTextRecord(test_number_data)]),
|
||||
|
||||
// NDEFRecord.encoding for 'text' record must be either "utf-8",
|
||||
// "utf-16", "utf-16le" or "utf-16be".
|
||||
|
@ -49,12 +48,10 @@ const invalid_type_messages =
|
|||
|
||||
// NDEFRecord.data for 'url' record must be string.
|
||||
createMessage([createUrlRecord(test_buffer_data)]),
|
||||
createMessage([createUrlRecord(test_number_data)]),
|
||||
createMessage([createUrlRecord(test_json_data)]),
|
||||
|
||||
// NDEFRecord.data for 'absolute-url' record must be string.
|
||||
createMessage([createUrlRecord(test_buffer_data, true)]),
|
||||
createMessage([createUrlRecord(test_number_data, true)]),
|
||||
createMessage([createUrlRecord(test_json_data, true)]),
|
||||
|
||||
// https://w3c.github.io/web-nfc/#dfn-map-binary-data-to-ndef
|
||||
|
|
|
@ -64,6 +64,7 @@ const test_buffer_data = new ArrayBuffer(test_text_byte_array.length);
|
|||
const test_buffer_view = new Uint8Array(test_buffer_data);
|
||||
test_buffer_view.set(test_text_byte_array);
|
||||
const fake_tag_serial_number = 'c0:45:00:02';
|
||||
const test_record_id = '/test_path/test_id';
|
||||
|
||||
const NFCHWStatus = {};
|
||||
// OS-level NFC setting is ON
|
||||
|
@ -81,10 +82,12 @@ function createMessage(records) {
|
|||
}
|
||||
}
|
||||
|
||||
function createRecord(recordType, data, mediaType, encoding, lang) {
|
||||
function createRecord(recordType, data, id, mediaType, encoding, lang) {
|
||||
let record = {};
|
||||
if (recordType !== undefined)
|
||||
record.recordType = recordType;
|
||||
if (id !== undefined)
|
||||
record.id = id;
|
||||
if (mediaType !== undefined)
|
||||
record.mediaType = mediaType;
|
||||
if (encoding !== undefined)
|
||||
|
@ -97,28 +100,29 @@ function createRecord(recordType, data, mediaType, encoding, lang) {
|
|||
}
|
||||
|
||||
function createTextRecord(data, encoding, lang) {
|
||||
return createRecord('text', data, undefined, encoding, lang);
|
||||
return createRecord('text', data, test_record_id, undefined, encoding, lang);
|
||||
}
|
||||
|
||||
function createMimeRecordFromJson(json) {
|
||||
return createRecord(
|
||||
'mime', new TextEncoder('utf-8').encode(JSON.stringify(json)),
|
||||
'application/json');
|
||||
test_record_id, 'application/json');
|
||||
}
|
||||
|
||||
function createMimeRecord(buffer) {
|
||||
return createRecord('mime', buffer, 'application/octet-stream');
|
||||
return createRecord(
|
||||
'mime', buffer, test_record_id, 'application/octet-stream');
|
||||
}
|
||||
|
||||
function createUnknownRecord(buffer) {
|
||||
return createRecord('unknown', buffer);
|
||||
return createRecord('unknown', buffer, test_record_id);
|
||||
}
|
||||
|
||||
function createUrlRecord(url, isAbsUrl) {
|
||||
if (isAbsUrl) {
|
||||
return createRecord('absolute-url', url);
|
||||
return createRecord('absolute-url', url, test_record_id);
|
||||
}
|
||||
return createRecord('url', url);
|
||||
return createRecord('url', url, test_record_id);
|
||||
}
|
||||
|
||||
function createNDEFPushOptions(target, ignoreRead) {
|
||||
|
@ -135,9 +139,11 @@ function assertNDEFMessagesEqual(providedMessage, receivedMessage) {
|
|||
let provided = providedMessage;
|
||||
if (providedMessage instanceof ArrayBuffer ||
|
||||
ArrayBuffer.isView(providedMessage))
|
||||
provided = createMessage([createMimeRecord(providedMessage)]);
|
||||
provided = createMessage([createRecord(
|
||||
'mime', providedMessage, undefined /* id */,
|
||||
'application/octet-stream')]);
|
||||
else if (typeof providedMessage === 'string')
|
||||
provided = createMessage([createTextRecord(providedMessage)]);
|
||||
provided = createMessage([createRecord('text', providedMessage)]);
|
||||
|
||||
assert_equals(provided.records.length, receivedMessage.data.length,
|
||||
'NDEFMessages must have same number of NDEFRecords');
|
||||
|
@ -161,6 +167,7 @@ function assertWebNDEFMessagesEqual(message, expectedMessage) {
|
|||
let expectedRecord = expectedMessage.records[i];
|
||||
assert_equals(record.recordType, expectedRecord.recordType);
|
||||
assert_equals(record.mediaType, expectedRecord.mediaType);
|
||||
assert_equals(record.id, expectedRecord.id);
|
||||
|
||||
// Compares record data
|
||||
assert_array_equals(new Uint8Array(record.data),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue