Import wpt@37d215c69e495f287cc96902b47af64d21922305
Using wpt-import in Chromium 11f7bdb064d917947d1f37e728ba7192c70162fc.
With Chromium commits locally applied on WPT:
d1fb50d23a "Increase timeout of openSXGInIframeAndWaitForMessage to 15 sec"
19df13a3f9 "[Private Network Access] Add WPTs for WebSockets."
Note to sheriffs: This CL imports external tests and adds
expectations for those tests; if this CL is large and causes
a few new failures, please fix the failures by adding new
lines to TestExpectations rather than reverting. See:
https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md
Directory owners for changes in this CL:
jsbell@chromium.org:
external/wpt/resources
NOAUTOREVERT=true
No-Export: true
Change-Id: I379d5ef80541612e4de9df0ec702a166c053b017
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3092847
Reviewed-by: Weizhong Xia <weizhong@google.com>
Reviewed-by: Kyle Ju <kyleju@chromium.org>
Commit-Queue: Weizhong Xia <weizhong@google.com>
Cr-Commit-Position: refs/heads/master@{#911871}
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
index 66b04947..8ae0bd1 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -76789,6 +76789,32 @@
{}
]
],
+ "float-in-self-collapsing-block-000.html": [
+ "e42d941e78ab45e9107ac49ee8c8c2b4c6d43c9d",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "float-in-self-collapsing-block-001.html": [
+ "835a5be09a80c19b079b1aa71fddee8e450f9a20",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"float-inside-small-block.html": [
"2afd6dacc9c1f910be33a97677c0f5841fe5b035",
[
@@ -112498,7 +112524,7 @@
]
],
"custom-highlight-painting-invalidation-001.html": [
- "909779d98a87e5a8030d941cc26956512ce72c2a",
+ "aef391ec0f3c749554bc2cf284b18ff78f8bc525",
[
null,
[
@@ -112511,7 +112537,7 @@
]
],
"custom-highlight-painting-invalidation-002.html": [
- "197b9a40a481d9abe1e50103739ba7b028328c3c",
+ "99271ff7a0ea2d15e0a4a6d7448cfbcc44d42486",
[
null,
[
@@ -112524,7 +112550,7 @@
]
],
"custom-highlight-painting-invalidation-003.html": [
- "a02d0503b5446d8c46bf7f784b65d94244ddcf2a",
+ "d1f87223887a4d38235212948d319c18e9e005e3",
[
null,
[
@@ -112537,7 +112563,7 @@
]
],
"custom-highlight-painting-invalidation-004.html": [
- "2b227432a9842131908ef65936f7994685ab3f4f",
+ "62f05a84abcb9a81ea7ec1fdcbcaad5e1ddf8a17",
[
null,
[
@@ -112550,7 +112576,7 @@
]
],
"custom-highlight-painting-invalidation-005.html": [
- "b22b7d7e746f1f3083cdce335ec758b51d3ad2ad",
+ "cabc4c3b9c00282ef632f40c7f4d7092abff9bd1",
[
null,
[
@@ -112563,7 +112589,7 @@
]
],
"custom-highlight-painting-invalidation-006.html": [
- "d773a015c4e625299540cd993838f0d2dc9deb28",
+ "81c2298e1322a103997982bda008c1679e91a033",
[
null,
[
@@ -112641,7 +112667,7 @@
]
],
"custom-highlight-painting-staticrange-004.html": [
- "fa3d7ce373878fcfac3981c7f82b81bd0f09bc4d",
+ "14e9766a981afe6ce2efa368eb2fbb5ec62a697e",
[
null,
[
@@ -112654,7 +112680,7 @@
]
],
"custom-highlight-painting-staticrange-005.html": [
- "ab486ae644adb2e2dda7f70364bf9a6f95bb8aa1",
+ "b955b0fcee4342a24a6b59d6d91e0f2fbdd4126f",
[
null,
[
@@ -112667,7 +112693,7 @@
]
],
"custom-highlight-painting-staticrange-006.html": [
- "52ab8c7fb05dbd4f66840733b8a0b481c4b62a6c",
+ "8436102240d04b161bf55d711a64ad92c1309959",
[
null,
[
@@ -112680,7 +112706,7 @@
]
],
"custom-highlight-painting-staticrange-007.html": [
- "d56082a119ce21f0d87d69c52cdf0833e5d31a21",
+ "03a7ee6d54534a7545f26be083659c0c26c4e4fc",
[
null,
[
@@ -172312,12 +172338,12 @@
},
"css-variables": {
"css-vars-custom-property-case-sensitive-001.html": [
- "6644175e5533a19ef4125dd8aecd833f1be12c39",
+ "df2b352702311f0a2ae55160cb9fbc2bde576dd0",
[
null,
[
[
- "/css/css-variables/reference/css-vars-custom-property-case-sensitive-ref.html",
+ "/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
@@ -172325,12 +172351,12 @@
]
],
"css-vars-custom-property-inheritance.html": [
- "fc6cfa0ed40cdd6e9f973e5da150afff9d992e33",
+ "bbda51d2fe512b8acf234274e131e4febc0d31b8",
[
null,
[
[
- "/css/css-variables/reference/css-vars-custom-property-inheritance-ref.html",
+ "/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
@@ -172637,7 +172663,7 @@
]
],
"variable-declaration-24.html": [
- "ead972c2aadf762f92ab727bde1d76f140643f56",
+ "14fe47a1e5ea424e107161dfe7d0f743068b2380",
[
null,
[
@@ -172650,7 +172676,7 @@
]
],
"variable-declaration-25.html": [
- "64d19973d74ddb9394ea9bee861f84abd75c08ac",
+ "ad79f4ced1933c11890c4a0c6d3778aa140a021f",
[
null,
[
@@ -193007,6 +193033,19 @@
],
{}
]
+ ],
+ "xml-class-selector.xml": [
+ "5666c0065d6262e0ca3c586d145a67e7f9c2a3cf",
+ [
+ null,
+ [
+ [
+ "/css/selectors/xml-class-selector-ref.xml",
+ "=="
+ ]
+ ],
+ {}
+ ]
]
},
"vendor-imports": {
@@ -200532,6 +200571,21 @@
}
},
"interactive-elements": {
+ "the-dialog-element": {
+ "backdrop-dynamic-display-none.html": [
+ "573ed2d6c62c416a532de11d5d2e1775f4086dce",
+ [
+ null,
+ [
+ [
+ "/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none-reference.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ]
+ },
"the-popup-element": {
"popup-hidden-display.tentative.html": [
"b313f06f664d35ca86e98a2361c04e329964e02a",
@@ -238790,6 +238844,10 @@
"iframe-code.html": [
"a4a1829be229acb4c0cf75cbb0e2885060741d3f",
[]
+ ],
+ "run-after-layout-and-paint.js": [
+ "75d3e279a4cd6916f769a68f2c7f246e8ad354dc",
+ []
]
}
}
@@ -253032,14 +253090,6 @@
[]
],
"reference": {
- "css-vars-custom-property-case-sensitive-ref.html": [
- "30bad67f85a38737a408350e46d7236a3e4462e3",
- []
- ],
- "css-vars-custom-property-inheritance-ref.html": [
- "fcacb7bb23d1ab8c1288b2de072416a7c7ee8623",
- []
- ],
"variable-reference-without-whitespace-ref.html": [
"3d9aaed6b129725cb5190afd9f19aefae834f37f",
[]
@@ -257408,6 +257458,10 @@
"user-valid-expected.txt": [
"60549107fbeec9ba2ae7c07bcf3afe5d5bc94b34",
[]
+ ],
+ "xml-class-selector-ref.xml": [
+ "6b44280737ab254649036ff50808b764bc87cc67",
+ []
]
},
"support": {
@@ -263425,17 +263479,25 @@
"a69aab487239021088f944b0a8cee2dad4b3d111",
[]
],
+ "non-secure-context.window-expected.txt": [
+ "101160983b38cf7dac36d92ae865da8c2e1b9a0c",
+ []
+ ],
"resources": {
"fetcher.html": [
"6fc321f345142c2379cee6e5845bc73b90cad509",
[]
],
"ports.sub.js": [
- "52919db847de01fc3bb3e17c0f561d71977a8062",
+ "fb3f0ad5c402eefea666251fe177e74e94d36450",
+ []
+ ],
+ "socket-opener.html": [
+ "48d27216bedf9aa1daf4d2a4e96f860e9315a0c3",
[]
],
"support.js": [
- "54177d5bfbf1fd57cb795d7d6c3cc141b2d083f0",
+ "16494bf197a1101a9b9445eae9b14ddd5c2bfb83",
[]
]
}
@@ -268501,21 +268563,9 @@
]
},
"pixel-manipulation": {
- "2d.imageData.create2.nonfinite-expected.txt": [
- "3047af28cce2b4d27a6721802562289496db1219",
- []
- ],
- "2d.imageData.get.nonfinite-expected.txt": [
- "0755a317939083bff9e9d566086e6d0a05f85bd2",
- []
- ],
"2d.imageData.get.tiny-expected.txt": [
"bc72eb78a8fbdd7219a460807b09547605eddea9",
[]
- ],
- "2d.imageData.put.nonfinite-expected.txt": [
- "d52021cc00ba4e8e77ce5919e611ed42d3f94528",
- []
]
},
"text": {
@@ -276643,6 +276693,10 @@
]
},
"the-dialog-element": {
+ "backdrop-dynamic-display-none-reference.html": [
+ "c49a11d41634dcd035f926cb97fe1db9e16dfb78",
+ []
+ ],
"centering-iframe.sub.html": [
"6ffd72296d8302c71866624b08b1b3213f1b5e4e",
[]
@@ -282000,7 +282054,7 @@
]
},
"lint.ignore": [
- "49a71f640d8033b95b5ab674d5a7dc35893258b8",
+ "d486fb9ed3c10788d7c3a0b6a66ffa046e242b22",
[]
],
"loading": {
@@ -285087,7 +285141,7 @@
]
},
"show-consume-activation.https-expected.txt": [
- "6ce291242ae95fffa1a86775c2a1479651b2349b",
+ "bd3d471c79db74a3c3d1683882f5170114d1946a",
[]
],
"show-consume-activation.https.html.ini": [
@@ -285171,6 +285225,10 @@
"permissions-query-feature-policy-attribute.https.sub-expected.txt": [
"b3a521320e8acb70c2f2199d608d4bd3379934e0",
[]
+ ],
+ "permissionsstatus-name-expected.txt": [
+ "94dd7854162c1b0a606755a610a74c9a088cce89",
+ []
]
},
"permissions-policy": {
@@ -288431,7 +288489,7 @@
[]
],
"testharness.js": [
- "f85b19fd9bd90c3476dedcbe5825b82fb40de82c",
+ "d35e297aab0714ca00fd27607369a653977cb9ae",
[]
],
"testharness.js.headers": [
@@ -295253,6 +295311,10 @@
[]
],
"resources": {
+ "check-accept-header-and-return-bundle.py": [
+ "c2c8ebb601de7f53e2b9c3208d45093da1bf8cb5",
+ []
+ ],
"check-sec-fetch-dest-header-and-return-bundle.py": [
"da36e49320369ddc94405d298746db562be50045",
[]
@@ -296242,7 +296304,7 @@
]
},
"conftest.py": [
- "42b82c9ecf29a1aed48bfa959c20aba6edd1319e",
+ "fe9f5cd268240662d0d7a6753e58a7fbedecad4e",
[]
],
"delete_all_cookies": {
@@ -296649,7 +296711,7 @@
[]
],
"asserts.py": [
- "e60d53b6c6f0c5baf8694b82332df517a782e671",
+ "bc59d7b39664fe57e31f1e1aaf0f370aed651633",
[]
],
"authentication.py": [
@@ -296661,7 +296723,15 @@
[]
],
"fixtures.py": [
- "f7eb8bf825b8ec8c3308e5bc340b3ec7f68ce807",
+ "e42b0ad9a26fd295d67913a9ffed56483e913b14",
+ []
+ ],
+ "fixtures_bidi.py": [
+ "cdfa3a08558517c021f42a8600bdf7b0f67f977f",
+ []
+ ],
+ "fixtures_http.py": [
+ "2d961d7f60c858972201c51378a738612deee11a",
[]
],
"helpers.py": [
@@ -297099,7 +297169,7 @@
[]
],
"RTCRtpTransceiver.https-expected.txt": [
- "d7dae0f9210361eae456b249de4d8b0719154fbb",
+ "cba73637158287119471b23117bf859f98019ea4",
[]
],
"RTCStats-helper.js": [
@@ -297397,7 +297467,7 @@
[]
],
"supported-stats-expected.txt": [
- "75425233f4b59a99e9ee9c8da54f0c9c104519d5",
+ "0ba4f70d25511e8ea124a3fdc734e94d1b77e171",
[]
]
},
@@ -315661,7 +315731,7 @@
]
],
"navigate-respondWith-history-state.html": [
- "e0031d510486365052f50c32f8a836cbdd2b7528",
+ "c7e64b568d45af3c37cbf432177d1c8432a0be83",
[
null,
{}
@@ -315682,7 +315752,7 @@
]
],
"navigate-respondWith.html": [
- "70a560d9b496b6c94eb111d7773bc8339400dc71",
+ "c65da903a6cd5bc1d5df3bd1e4e2063d43b2155b",
[
null,
{}
@@ -316202,8 +316272,15 @@
{}
]
],
+ "respondWith-multiple-times-reject.html": [
+ "0e1bd1963f202b2865b562f9c0e8ce9a80db9bdf",
+ [
+ null,
+ {}
+ ]
+ ],
"respondWith-multiple-times.html": [
- "f1694432d59c31c0ebe08b5d75753f6bd62d04ff",
+ "5ca6db0476a27ed0267f6c1590c75ab681707bc9",
[
null,
{}
@@ -347708,7 +347785,7 @@
]
],
"rowspan-height-redistribution.html": [
- "3357cbdc4b81832e7b830ae54ecb7132ede4414c",
+ "364ae321c901b073d5eba9655b8481089a3b2f01",
[
null,
{}
@@ -355027,7 +355104,7 @@
]
],
"variable-pseudo-element.html": [
- "1c5413bd542ab640a0dc5f2ff2344076dd4495c2",
+ "ee61cbf3948a89427e0cefcf4e6c0c4736e7c255",
[
null,
{}
@@ -355090,28 +355167,21 @@
]
],
"variable-substitution-filters.html": [
- "5dc10e1d82fd6519402bf403db6805ef9bade044",
- [
- null,
- {}
- ]
- ],
- "variable-substitution-plus-box-shadow.html": [
- "06dfd3628108333392c40e1afbca5e8406a9da02",
+ "5e48073158207046deffc78397b31b2198f40926",
[
null,
{}
]
],
"variable-substitution-replaced-size.html": [
- "581ea6b8f20e35ebe48f75e1b7e3e2c68f2046e3",
+ "29bae38e3e99b4524e87f7dbd06567497bee3190",
[
null,
{}
]
],
"variable-substitution-shadow-properties.html": [
- "bd7b5ef334d6aa85ac8bfc66590ed4e0afc12e87",
+ "f825b200f344f9f6d491ea7bdb30566412264cc7",
[
null,
{}
@@ -388516,7 +388586,7 @@
},
"private-network-access": {
"non-secure-context.window.js": [
- "8e55559ac081e66b1abad0afc1bc9eab96ce8161",
+ "6b2b6be7e09708b3d3b6d30d08f476d7bf548dbd",
[
"fetch/private-network-access/non-secure-context.window.html",
{
@@ -388534,7 +388604,7 @@
]
],
"secure-context.https.window.js": [
- "889c3e0dc9d8da8879b3d0aed9d3bd8d3e6b3313",
+ "1218700786f7bf61e47389cdb22365d2cb2f642a",
[
"fetch/private-network-access/secure-context.https.window.html",
{
@@ -414054,37 +414124,6 @@
{}
]
],
- "cross-origin-isolated.tentative.window.js": [
- "8ab0e7106db42756c7ca3bda6c15fb618a5cde7a",
- [
- "html/cross-origin-embedder-policy/anonymous-iframe/cross-origin-isolated.tentative.window.html",
- {
- "script_metadata": [
- [
- "script",
- "/common/get-host-info.sub.js"
- ],
- [
- "script",
- "/common/utils.js"
- ],
- [
- "script",
- "../credentialless/resources/common.js"
- ],
- [
- "script",
- "../credentialless/resources/dispatcher.js"
- ],
- [
- "timeout",
- "long"
- ]
- ],
- "timeout": "long"
- }
- ]
- ],
"local-storage.tentative.https.html": [
"a49eac706bea9840e9ff58a5790669f12109d230",
[
@@ -425718,8 +425757,17 @@
{}
]
],
+ "popup-light-dismiss-resize.tentative.html": [
+ "cec65f77dcaddfd170581992ddec02c53619898e",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"popup-light-dismiss.tentative.html": [
- "649b594c2efb45e5c875008169fbad86d4cb8fe9",
+ "e0012587fd217a935409b6c70af4db5c94a73332",
[
null,
{
@@ -443270,6 +443318,85 @@
}
]
],
+ "read_write_async_bufferlength.tentative.https.any.js": [
+ "7424d24e5231fc5bafc3413cf68232773acfc883",
+ [
+ "native-io/read_write_async_bufferlength.tentative.https.any.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "NativeIO API: Read/Write correctly handle small buffer lengths."
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "native-io/read_write_async_bufferlength.tentative.https.any.serviceworker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "NativeIO API: Read/Write correctly handle small buffer lengths."
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "native-io/read_write_async_bufferlength.tentative.https.any.sharedworker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "NativeIO API: Read/Write correctly handle small buffer lengths."
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "native-io/read_write_async_bufferlength.tentative.https.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "NativeIO API: Read/Write correctly handle small buffer lengths."
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ]
+ ],
"read_write_correct_arraybufferview_async_basic.tentative.https.any.js": [
"46bcc8d5bd85dbb60edc4e824f6bc729f85582f4",
[
@@ -443393,6 +443520,28 @@
}
]
],
+ "read_write_sync_bufferlength.tentative.https.any.js": [
+ "3f45f2702c3152c5ffea4c0caba6abc482f2188e",
+ [
+ "native-io/read_write_sync_bufferlength.tentative.https.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Synchronous NativeIO API: Read/Write correctly handle small buffer lengths."
+ ],
+ [
+ "global",
+ "dedicatedworker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ]
+ ],
"rename_async_basic.tentative.https.any.js": [
"47c9ffc6b919417dfbc47499b8029d13788cd8bf",
[
@@ -446148,7 +446297,7 @@
]
],
"show-consume-activation.https.html": [
- "0b92c4c15cf158457a9cfae6fab02171a49ca5f2",
+ "044fca5d40801fcad93fc5137a12fdfc8db4147c",
[
null,
{
@@ -446748,6 +446897,13 @@
{}
]
],
+ "permissionsstatus-name.html": [
+ "db1d1bb83eba9f55e68b1cc5a0f8224be98a36cf",
+ [
+ null,
+ {}
+ ]
+ ],
"screen-wake-lock-permission.html": [
"0fa69ff96a03b36d3fbd3de15a70f9b199074ebc",
[
@@ -487507,6 +487663,13 @@
{}
]
],
+ "subresource-loading-accept-header.https.tentative.sub.html": [
+ "e8aa5f902da22b04279c38a76ac13309406b6483",
+ [
+ null,
+ {}
+ ]
+ ],
"subresource-loading-cors-error.https.tentative.html": [
"43b1f36386f9196030e1a94d21ff7443a394aa90",
[
@@ -529955,6 +530118,15 @@
{}
]
]
+ },
+ "session_subscribe": {
+ "subscribe.py": [
+ "42bcde48d687b66fd9052105c5a0e3faf8cdffb4",
+ [
+ null,
+ {}
+ ]
+ ]
}
},
"close_window": {
@@ -530297,7 +530469,7 @@
},
"find_element_from_shadow_root": {
"user_prompts.py": [
- "3813a7df5d324231e18b89ebf46d72729f220942",
+ "e1326cf599a4affe3c269f205bdbd4e791b8f346",
[
null,
{
@@ -530330,7 +530502,7 @@
},
"find_elements_from_shadow_root": {
"user_prompts.py": [
- "c4b903c836ef8ed89cd234ebe170a66f3b24631a",
+ "9950999226debc864f66e2096e8d2108c620f022",
[
null,
{
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-case-sensitive-001.html b/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-case-sensitive-001.html
index 6644175e..df2b352 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-case-sensitive-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-case-sensitive-001.html
@@ -6,32 +6,26 @@
<link rel="author" title="Noah Collins" href="mailto:noahcollins@gmail.com">
<link rel="help" href="http://www.w3.org/TR/css-variables-1/#using-variables">
<meta name="assert" content="Custom property names are case-sensitive">
- <link rel="match" href="reference/css-vars-custom-property-case-sensitive-ref.html">
+ <link rel="match" href="/css/reference/ref-filled-green-100px-square.xht">
<style type="text/css">
:root {
- --veryblue: #22e;
- --AlsoBlue: #22e;
+ --lowercasegreen: green;
+ --MixedCaseGreen: green;
- --veryred: #f00;
- --AlsoRed: #f00;
+ --lowercasered: red;
+ --MixedCaseRed: red;
}
-
- /* These match the case of the declarations */
- .blue-good-1 { color: var(--veryblue); }
- .blue-good-2 { color: var(--AlsoBlue); }
-
- /* These DO NOT match the case of the declarations */
- .red-bad-1 { color: var(--VeryRed); }
- .red-bad-2 { color: var(--alsored); }
+ div {
+ width: 100px;
+ height: 25px;
+ }
</style>
</head>
<body>
- <h2 class="blue-good-1">Valid CSS Variable Names</h2>
- <p class="blue-good-1">This paragraph is styled using a valid CSS Variable name. It should be blue.</p>
- <p class="blue-good-2">This paragraph is styled using a valid CSS Variable name. It should be blue.</p>
- <br>
- <h2 class="red-bad-1">Invalid CSS Variable Names</h2>
- <p class="red-bad-1">This paragraph is styled using an invalid CSS Variable name. Fail if red.</p>
- <p class="red-bad-2">This paragraph is styled using an invalid CSS Variable name. Fail if red.</p>
+ <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+ <div style="background-color: var(--lowercasegreen, red);"></div>
+ <div style="background-color: var(--MixedCaseGreen, red);"></div>
+ <div style="background-color: var(--LowerCaseRed, green);"></div>
+ <div style="background-color: var(--mixedcasered, green);"></div>
</body>
</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-inheritance.html b/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-inheritance.html
index fc6cfa0..bbda51d 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-inheritance.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/css-vars-custom-property-inheritance.html
@@ -6,25 +6,25 @@
<link rel="author" title="Noah Collins" href="mailto:noahcollins@gmail.com">
<link rel="help" href="http://www.w3.org/TR/css-variables-1/#using-variables">
<meta name="assert" content="custom properties are resolved with the normal inheritance and cascade rules">
- <link rel="match" href="reference/css-vars-custom-property-inheritance-ref.html">
+ <link rel="match" href="/css/reference/ref-filled-green-100px-square.xht">
<style type="text/css">
/* test cascade importance */
- :root { --color: #1c1 !important; }
- :root { --color: red; }
+ :root { --color-1: green !important; }
+ :root { --color-1: red; }
+ div.color1 { background-color: var(--color-1); }
/* test cascade order */
- * { color: red; }
+ :root { --color-2: green; }
+ div.color2 { background-color: red; }
+ div.color2 { background-color: var(--color-2); }
- /* test cascade order */
- * { color: var(--color); }
-
+ div { width: 100px; height: 50px; }
</style>
</head>
<body>
- <p>Green</p>
- <p>Green</p>
- <p>Green</p>
- <p>The test passes if everything is green. Any red means the test failed.</p>
+ <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+ <div class=color1></div>
+ <div class=color2></div>
</body>
</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/reference/css-vars-custom-property-case-sensitive-ref.html b/third_party/blink/web_tests/external/wpt/css/css-variables/reference/css-vars-custom-property-case-sensitive-ref.html
deleted file mode 100644
index 30bad67f..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/reference/css-vars-custom-property-case-sensitive-ref.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>CSS Variables Test: custom property names are case-sensitive</title>
- <meta charset="UTF-8">
- <link rel="author" title="Noah Collins" href="mailto:noahcollins@gmail.com">
- <style type="text/css">
- .blue-good-1 { color: #22e; }
- .blue-good-2 { color: #22e; }
- </style>
-</head>
-<body>
- <h2 class="blue-good-1">Valid CSS Variable Names</h2>
- <p class="blue-good-1">This paragraph is styled using a valid CSS Variable name. It should be blue.</p>
- <p class="blue-good-2">This paragraph is styled using a valid CSS Variable name. It should be blue.</p>
- <br>
- <h2>Invalid CSS Variable Names</h2>
- <p>This paragraph is styled using an invalid CSS Variable name. Fail if red.</p>
- <p>This paragraph is styled using an invalid CSS Variable name. Fail if red.</p>
-</body>
-</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/reference/css-vars-custom-property-inheritance-ref.html b/third_party/blink/web_tests/external/wpt/css/css-variables/reference/css-vars-custom-property-inheritance-ref.html
deleted file mode 100644
index fcacb7b..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/reference/css-vars-custom-property-inheritance-ref.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <title>CSS Variables Test: custom properties use normal inheritance and cascade rules</title>
- <link rel="author" title="Noah Collins" href="mailto:noahcollins@gmail.com">
- <style type="text/css">
- * { color: #1c1; }
- </style>
-</head>
-<body>
- <p>Green</p>
- <p>Green</p>
- <p>Green</p>
- <p>The test passes if everything is green. Any red means the test failed.</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-24.html b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-24.html
index ead972c2a..14fe47a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-24.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-24.html
@@ -16,10 +16,10 @@
}
p {
color: orange;
- --a: green;
+ --a: red;
--b: crimson;
- --a: var(--b) <!--;
- color: var(--a);
+ --a: var(--b) <!--; /* valid at parse */
+ color: var(--a); /* but IACVT at substitution */
}
</style>
<p>This text must be green.</p>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-25.html b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-25.html
index 64d1997..ad79f4c 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-25.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-declaration-25.html
@@ -16,10 +16,10 @@
}
p {
color: orange;
- --a: green;
+ --a: red;
--b: crimson;
- --a: --> var(--b);
- color: var(--a);
+ --a: --> var(--b); /* valid at parse */
+ color: var(--a); /* but IACVT at substitution */
}
</style>
<p>This text must be green.</p>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-pseudo-element.html b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-pseudo-element.html
index 1c5413bd..ee61cbf 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-pseudo-element.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-pseudo-element.html
@@ -1,106 +1,68 @@
<!DOCTYPE html>
<html>
<head>
- <title>Parse, store, and serialize CSS variable references</title>
+ <title>Variables work in ::before/::after pseudos</title>
<meta rel="author" title="Kevin Babbitt">
<meta rel="author" title="Greg Whitworth">
<link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
- <!-- This is not directly specified in the spec but should work -->
+ <link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact/">
<link rel="help" href="http://www.w3.org/TR/css-variables-1/#defining-variables">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <!--
- https://drafts.csswg.org/css-syntax/#error-handling
- If the stylesheet ends while any rule, declaration, function, string, etc. are still open, everything is automatically closed.
- -->
- <style id="variable-reference-left-open">
- div
- {
- color: var(--my-color);
- --my-color: blue;
- --my-color2: red;
+ <style>
+ :root {
+ --color: green;
+ --color2: red;
}
-
- #div1::after
- {
- content: '[after]';
- color: var(--my-color);
- --my-color: orange;
- }
-
- #div2::after
- {
- content: '[after]';
- color: var(--my-color2);
- }
-
- #div3::after
- {
- content: '[after]';
- --my-color: orange;
- }
-
- #div4::after
- {
- content: '[after]';
- color: var(--my-color);
- --my-color: pink;
- }
-
- #div1::before
- {
+ div::before {
content: '[before]';
- color: var(--my-color);
- --my-color: orange;
+ }
+ div::after {
+ content: '[after]';
}
- #div2::before
- {
- content: '[before]';
- color: var(--my-color2);
+ #div1 {
+ color: red;
+ }
+ #div1::before, #div1::after {
+ color: var(--color2);
+ --color2: green;
}
- #div3::before
- {
- content: '[before]';
- --my-color: orange;
+ #div2 {
+ color: var(--color2);
+ }
+ #div2::before, #div2::after {
+ color: var(--color);
}
- #div4::before
- {
- content: '[before]';
- color: var(--my-color);
- --my-color: purple;
+ #div3 {
+ color: var(--color);
+ }
+ #div3::before, #div3::after {
+ --color: red;
}
</style>
-</head>
-<body>
+
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
- <div id="div4">div4</div>
+ <span id="control" style="color: green;"></span>
-<script type="text/javascript">
+<script>
"use strict";
- var testcases = [
- { ID: "div1", expectedAfterColor: "rgb(255, 165, 0)", expectedBeforeColor: "rgb(255, 165, 0)" },
- { ID: "div2", expectedAfterColor: "rgb(255, 0, 0)", expectedBeforeColor: "rgb(255, 0, 0)" },
- { ID: "div3", expectedAfterColor: "rgb(0, 0, 255)", expectedBeforeColor: "rgb(0, 0, 255)" },
- { ID: "div4", expectedAfterColor: "rgb(255, 192, 203)", expectedBeforeColor: "rgb(128, 0, 128)" },
- ];
-
- testcases.forEach(function (testcase) {
+ [...document.querySelectorAll("div")].forEach(function (div) {
test( function () {
- var div = document.getElementById(testcase.ID);
- var actualAfterColor = window.getComputedStyle(div, ':after').getPropertyValue('color');
+ const expectedColor = getComputedStyle(document.querySelector("#control")).color;
var actualBeforeColor = window.getComputedStyle(div, ':before').getPropertyValue('color');
- assert_equals(actualBeforeColor, testcase.expectedBeforeColor, "The color of the before pseudo element should match the expected color");
- assert_equals(actualAfterColor, testcase.expectedAfterColor, "The color of the after pseudo element should match the expected color");
- }, testcase.ID);
+ var actualAfterColor = window.getComputedStyle(div, ':after').getPropertyValue('color');
+ assert_equals(actualBeforeColor, expectedColor);
+ assert_equals(actualAfterColor, expectedColor);
+ }, div.getAttribute("id"));
});
</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-filters.html b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-filters.html
index 5dc10e1..5e48073 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-filters.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-filters.html
@@ -6,7 +6,6 @@
<meta rel="author" title="Kevin Babbitt">
<meta rel="author" title="Greg Whitworth">
<link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
- <!-- This is testing filters functions with var() function -->
<link rel="help" href="http://www.w3.org/TR/css-variables-1/#defining-variables">
<script src="/resources/testharness.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-plus-box-shadow.html b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-plus-box-shadow.html
deleted file mode 100644
index 06dfd36..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-plus-box-shadow.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>box-shadow + variable substitution on same element</title>
-
- <meta rel="author" title="Kevin Babbitt">
- <meta rel="author" title="Greg Whitworth">
- <link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
- <!-- This is testing filters functions with var() function -->
- <link rel="help" href="http://www.w3.org/TR/css-variables-1/#defining-variables">
-
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
-</head>
-<body>
- <div id="target" style="box-shadow: 1px 1px 1px green; color: var(--alpha); --alpha: green;">This div should have green text and a green shadow.</div>
-
- <script type="text/javascript">
- "use strict";
- let target = document.getElementById('target');
- let computedStyle = window.getComputedStyle(target);
-
- let templates = [
- {
- testName:"box-shadow",
- value: computedStyle.boxShadow,
- potentialValues: ["1px 1px 1px green", "rgb(0, 128, 0) 1px 1px 1px 0px"],
- description: "Expected value should be 1px 1px 1px green or rgb(0, 128, 0) 1px 1px 1px 0px"
- },
- {
- testName:"--alpha",
- value: computedStyle.getPropertyValue("--alpha").trim(),
- potentialValues: ["green"],
- description: "Expected value is green"
- },
- {
- testName:"color",
- value: computedStyle.color,
- potentialValues: ["rgb(0, 128, 0)", "rgba(0, 128, 0, 1)"],
- description: "Expected value to be rgb(0, 128, 0) or rgba(0, 128, 0, 1)"
- }
- ];
-
- templates.forEach(function (template) {
- test( function () {
- assert_in_array(template.value, template.potentialValues, template.description);
- }, template.testName);
- });
- </script>
-</body>
-</html>
-
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-replaced-size.html b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-replaced-size.html
index 581ea6b8..29bae38 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-replaced-size.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-replaced-size.html
@@ -6,7 +6,6 @@
<meta rel="author" title="Kevin Babbitt">
<meta rel="author" title="Greg Whitworth">
<link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
- <!-- This is testing filters functions with var() function -->
<link rel="help" href="http://www.w3.org/TR/css-variables-1/#defining-variables">
<script src="/resources/testharness.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-shadow-properties.html b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-shadow-properties.html
index bd7b5ef..f825b20 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-shadow-properties.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-variables/variable-substitution-shadow-properties.html
@@ -6,7 +6,6 @@
<meta rel="author" title="Kevin Babbitt">
<meta rel="author" title="Greg Whitworth">
<link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
- <!-- This is testing filters functions with var() function -->
<link rel="help" href="http://www.w3.org/TR/css-variables-1/#defining-variables">
<script src="/resources/testharness.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none-reference.html b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none-reference.html
new file mode 100644
index 0000000..c49a11d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none-reference.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<title>Reference: Test that adding display: none; dynamically on ::backdrop makes it disappear</title>
+<meta charset="utf-8">
+<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m">
+<p>Test passes if there is no red.</p>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none.html b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none.html
new file mode 100644
index 0000000..573ed2d6
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<title>Test that adding display: none; dynamically on ::backdrop makes it disappear</title>
+<meta charset="utf-8">
+<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m">
+<link rel="match" href="backdrop-dynamic-display-none-reference.html">
+<p>Test passes if there is no red.</p>
+<dialog></dialog>
+<style>
+dialog { visibility: hidden; }
+::backdrop { background-color: red; }
+.hidden-backdrop::backdrop {
+ display: none;
+}
+</style>
+<script>
+dialog = document.querySelector("dialog");
+dialog.showModal();
+requestAnimationFrame(() => {
+ dialog.classList.add("hidden-backdrop");
+});
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https-expected.txt b/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https-expected.txt
index 6ce29124..bd3d471c 100644
--- a/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https-expected.txt
@@ -1,4 +1,4 @@
This is a testharness.js-based test.
-FAIL Calling share consumes user activation promise_rejects_dom: function "function() { throw e }" threw object "UnknownError: Renderer process could not establish or lost IPC connection to the PaymentRequest service in the browser process." that is not a DOMException NotAllowedError: property "name" is equal to "UnknownError", expected "NotAllowedError"
+FAIL Calling share consumes user activation promise_rejects_dom: function "function() { throw e }" threw object "UnknownError: Renderer process could not establish or lost IPC connection to the PaymentRequest service in the browser process." that is not a DOMException SecurityError: property "code" is equal to 0, expected 18
Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https.html b/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https.html
index 0b92c4c..044fca5 100644
--- a/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https.html
+++ b/third_party/blink/web_tests/external/wpt/payment-request/show-consume-activation.https.html
@@ -38,7 +38,7 @@
const pr = new PaymentRequest(defaultMethods, defaultDetails);
// Not activated by user gesture, so not allowed!
- await promise_rejects_dom(t, "NotAllowedError", pr.show());
+ await promise_rejects_dom(t, "SecurityError", pr.show());
await test_driver.bless("Calls show() method");
@@ -47,7 +47,7 @@
// The activation has been consumed, so calling show() again would require
// a new gesture.
- await promise_rejects_dom(t, "NotAllowedError", pr.show());
+ await promise_rejects_dom(t, "InvalidStateError", pr.show());
// Abort the payment request
pr.abort()
diff --git a/third_party/blink/web_tests/external/wpt/permissions/permissionsstatus-name-expected.txt b/third_party/blink/web_tests/external/wpt/permissions/permissionsstatus-name-expected.txt
new file mode 100644
index 0000000..94dd7854
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/permissions/permissionsstatus-name-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL Test PermissionStatus's name attribute. assert_equals: Name was geolocation expected (string) "geolocation" but got (undefined) undefined
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/permissions/permissionsstatus-name.html b/third_party/blink/web_tests/external/wpt/permissions/permissionsstatus-name.html
new file mode 100644
index 0000000..db1d1bb8
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/permissions/permissionsstatus-name.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Test PermissionStatus's name attribute.</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div id="log"></div>
+
+<script>
+promise_test(async () => {
+ const result = await navigator.permissions.query({
+ name: "geolocation",
+ });
+ assert_equals(result.name, "geolocation", "Name was geolocation");
+});
+</script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/resources/testharness.js b/third_party/blink/web_tests/external/wpt/resources/testharness.js
index f85b19f..d35e297 100644
--- a/third_party/blink/web_tests/external/wpt/resources/testharness.js
+++ b/third_party/blink/web_tests/external/wpt/resources/testharness.js
@@ -2629,7 +2629,7 @@
RemoteContext.prototype.remote_done = function(data) {
if (tests.status.status === null &&
data.status.status !== data.status.OK) {
- tests.set_status(data.status.status, data.status.message, data.status.sack);
+ tests.set_status(data.status.status, data.status.message, data.status.stack);
}
for (let assert of data.asserts) {
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/session_subscribe/subscribe.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/session_subscribe/subscribe.py
new file mode 100644
index 0000000..42bcde48
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/session_subscribe/subscribe.py
@@ -0,0 +1,70 @@
+import asyncio
+
+import pytest
+
+from webdriver.bidi.error import InvalidArgumentException
+
+
+@pytest.mark.asyncio
+async def test_params_empty(bidi_session, send_blocking_command):
+ with pytest.raises(InvalidArgumentException):
+ response = await send_blocking_command("session.subscribe", {})
+
+
+@pytest.mark.asyncio
+@pytest.mark.parametrize("value", [None, True, "foo", 42, {}])
+async def test_params_events_invalid_type(bidi_session, send_blocking_command, value):
+ with pytest.raises(InvalidArgumentException):
+ response = await send_blocking_command("session.subscribe", {"events": value})
+
+
+@pytest.mark.asyncio
+async def test_params_events_empty(bidi_session):
+ response = await bidi_session.session.subscribe(events=[])
+ assert response == {}
+
+
+@pytest.mark.asyncio
+@pytest.mark.parametrize("value", [None, True, 42, [], {}])
+async def test_params_events_value_invalid_type(send_blocking_command, value):
+ with pytest.raises(InvalidArgumentException):
+ response = await send_blocking_command("session.subscribe", {"events": [value]})
+
+
+@pytest.mark.asyncio
+@pytest.mark.parametrize("value", ["", "foo", "foo.bar"])
+async def test_params_events_value_invalid_event_name(send_blocking_command, value):
+ with pytest.raises(InvalidArgumentException):
+ response = await send_blocking_command("session.subscribe", {"events": [value]})
+
+
+@pytest.mark.asyncio
+@pytest.mark.parametrize("value", [None, True, "foo", 42, {}])
+async def test_params_contexts_invalid_type(bidi_session, send_blocking_command, value):
+ with pytest.raises(InvalidArgumentException):
+ response = await send_blocking_command(
+ "session.subscribe",
+ {
+ "events": [],
+ "contexts": value,
+ }
+ )
+
+
+@pytest.mark.asyncio
+async def test_params_contexts_empty(bidi_session):
+ response = await bidi_session.session.subscribe(events=[], contexts=[])
+ assert response == {}
+
+
+@pytest.mark.asyncio
+@pytest.mark.parametrize("value", [None, True, 42, [], {}])
+async def test_params_contexts_value_invalid_type(send_blocking_command, value):
+ with pytest.raises(InvalidArgumentException):
+ response = await send_blocking_command(
+ "session.subscribe",
+ {
+ "events": [],
+ "contexts": [value],
+ }
+ )
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/conftest.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/conftest.py
index 42b82c9..fe9f5cd 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/conftest.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/conftest.py
@@ -1 +1,5 @@
-pytest_plugins = "tests.support.fixtures"
+pytest_plugins = (
+ "tests.support.fixtures",
+ "tests.support.fixtures_bidi",
+ "tests.support.fixtures_http",
+)
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/find_element_from_shadow_root/user_prompts.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/find_element_from_shadow_root/user_prompts.py
index 3813a7df..e1326cf 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/find_element_from_shadow_root/user_prompts.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/find_element_from_shadow_root/user_prompts.py
@@ -14,7 +14,7 @@
return session.transport.send(
"POST", "session/{session_id}/shadow/{shadow_id}/element".format(
session_id=session.session_id,
- element_id=shadow_id),
+ shadow_id=shadow_id),
{"using": using, "value": value})
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/find_elements_from_shadow_root/user_prompts.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/find_elements_from_shadow_root/user_prompts.py
index c4b903c..9950999 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/find_elements_from_shadow_root/user_prompts.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/find_elements_from_shadow_root/user_prompts.py
@@ -14,7 +14,7 @@
return session.transport.send(
"POST", "session/{session_id}/shadow/{shadow_id}/elements".format(
session_id=session.session_id,
- element_id=shadow_id),
+ shadow_id=shadow_id),
{"using": using, "value": value})
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py
index e60d53b..bc59d7b 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py
@@ -7,6 +7,7 @@
# WebDriver specification ID: dfn-error-response-data
errors = {
+ "detached shadow root": 404,
"element click intercepted": 400,
"element not selectable": 400,
"element not interactable": 400,
@@ -23,6 +24,7 @@
"no such cookie": 404,
"no such element": 404,
"no such frame": 404,
+ "no such shadow root": 404,
"no such window": 404,
"script timeout": 500,
"session not created": 500,
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py
index f7eb8bf8..e42b0ad 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py
@@ -12,7 +12,6 @@
from tests.support.helpers import cleanup_session, deep_update
from tests.support.inline import build_inline
from tests.support.http_request import HTTPRequest
-from tests.support.sync import Poll
_current_session = None
@@ -21,8 +20,10 @@
def pytest_configure(config):
# register the capabilities marker
- config.addinivalue_line("markers",
- "capabilities: mark test to use capabilities")
+ config.addinivalue_line(
+ "markers",
+ "capabilities: mark test to use capabilities"
+ )
@pytest.fixture
@@ -38,9 +39,9 @@
metafunc.parametrize("capabilities", marker.args, ids=None)
-# Ensure that the event loop is restarted once per session rather than the default of once per test
-# if we don't do this, tests will try to reuse a closed event loop and fail with an error that the "future
-# belongs to a different loop"
+# Ensure that the event loop is restarted once per session rather than the default
+# of once per test. If we don't do this, tests will try to reuse a closed event
+# loop and fail with an error that the "future belongs to a different loop".
@pytest.fixture(scope="session")
def event_loop():
"""Change event_loop fixture to session level."""
@@ -50,55 +51,6 @@
@pytest.fixture
-def add_event_listeners(session):
- """Register listeners for tracked events on element."""
- def add_event_listeners(element, tracked_events):
- element.session.execute_script("""
- let element = arguments[0];
- let trackedEvents = arguments[1];
-
- if (!("events" in window)) {
- window.events = [];
- }
-
- for (var i = 0; i < trackedEvents.length; i++) {
- element.addEventListener(trackedEvents[i], function (event) {
- window.events.push(event.type);
- });
- }
- """, args=(element, tracked_events))
- return add_event_listeners
-
-
-@pytest.fixture
-def create_cookie(session, url):
- """Create a cookie"""
- def create_cookie(name, value, **kwargs):
- if kwargs.get("path", None) is not None:
- session.url = url(kwargs["path"])
-
- session.set_cookie(name, value, **kwargs)
- return session.cookies(name)
-
- return create_cookie
-
-
-@pytest.fixture
-def create_frame(session):
- """Create an `iframe` element in the current browsing context and insert it
- into the document. Return a reference to the newly-created element."""
- def create_frame():
- append = """
- var frame = document.createElement('iframe');
- document.body.appendChild(frame);
- return frame;
- """
- return session.execute_script(append)
-
- return create_frame
-
-
-@pytest.fixture
def http(configuration):
return HTTPRequest(configuration["host"], configuration["port"])
@@ -122,14 +74,14 @@
}
-async def reset_current_session_if_necessary(caps, request_bidi):
+async def reset_current_session_if_necessary(caps):
global _current_session
- # If there is a session with different capabilities active or the current session
- # is of different type than the one we would like to create, end it now.
+ # If there is a session with different requested capabilities active than
+ # the one we would like to create, end it now.
if _current_session is not None:
- is_bidi = isinstance(_current_session, webdriver.BidiSession)
- if is_bidi != request_bidi or not _current_session.match(caps):
+ if not _current_session.match(caps):
+ is_bidi = isinstance(_current_session, webdriver.BidiSession)
if is_bidi:
await _current_session.end()
else:
@@ -144,7 +96,8 @@
By default the session will stay open after each test, but we always try to start a
new one and assume that if that fails there is already a valid session. This makes it
possible to recover from some errors that might leave the session in a bad state, but
- does not demand that we start a new session per test."""
+ does not demand that we start a new session per test.
+ """
global _current_session
# Update configuration capabilities with custom ones from the
@@ -153,7 +106,7 @@
deep_update(caps, capabilities)
caps = {"alwaysMatch": caps}
- await reset_current_session_if_necessary(caps, False)
+ await reset_current_session_if_necessary(caps)
if _current_session is None:
_current_session = webdriver.Session(
@@ -179,21 +132,25 @@
@pytest.fixture(scope="function")
async def bidi_session(capabilities, configuration, request):
- """Create and start a bidi session for a test that does not itself test
- bidi session creation.
+ """Create and start a bidi session.
+
+ Can be used for a test that does not itself test bidi session creation.
+
By default the session will stay open after each test, but we always try to start a
new one and assume that if that fails there is already a valid session. This makes it
possible to recover from some errors that might leave the session in a bad state, but
- does not demand that we start a new session per test."""
+ does not demand that we start a new session per test.
+ """
global _current_session
# Update configuration capabilities with custom ones from the
# capabilities fixture, which can be set by tests
caps = copy.deepcopy(configuration["capabilities"])
+ caps.update({"webSocketUrl": True})
deep_update(caps, capabilities)
caps = {"alwaysMatch": caps}
- await reset_current_session_if_necessary(caps, True)
+ await reset_current_session_if_necessary(caps)
if _current_session is None:
_current_session = webdriver.Session(
@@ -236,93 +193,8 @@
@pytest.fixture
-def create_dialog(session):
- """Create a dialog (one of "alert", "prompt", or "confirm") and provide a
- function to validate that the dialog has been "handled" (either accepted or
- dismissed) by returning some value."""
-
- def create_dialog(dialog_type, text=None):
- assert dialog_type in ("alert", "confirm", "prompt"), (
- "Invalid dialog type: '%s'" % dialog_type)
-
- if text is None:
- text = ""
-
- assert isinstance(text, str), "`text` parameter must be a string"
-
- # Script completes itself when the user prompt has been opened.
- # For prompt() dialogs, add a value for the 'default' argument,
- # as some user agents (IE, for example) do not produce consistent
- # values for the default.
- session.execute_async_script("""
- let dialog_type = arguments[0];
- let text = arguments[1];
-
- setTimeout(function() {
- if (dialog_type == 'prompt') {
- window.dialog_return_value = window[dialog_type](text, '');
- } else {
- window.dialog_return_value = window[dialog_type](text);
- }
- }, 0);
- """, args=(dialog_type, text))
-
- wait = Poll(
- session,
- timeout=15,
- ignored_exceptions=webdriver.NoSuchAlertException,
- message="No user prompt with text '{}' detected".format(text))
- wait.until(lambda s: s.alert.text == text)
-
- return create_dialog
-
-
-@pytest.fixture
-def closed_frame(session, url):
- original_handle = session.window_handle
- new_handle = session.new_window()
-
- session.window_handle = new_handle
-
- session.url = url("/webdriver/tests/support/html/frames.html")
-
- subframe = session.find.css("#sub-frame", all=False)
- session.switch_frame(subframe)
-
- deleteframe = session.find.css("#delete-frame", all=False)
- session.switch_frame(deleteframe)
-
- button = session.find.css("#remove-parent", all=False)
- button.click()
-
- yield
-
- session.window.close()
- assert new_handle not in session.handles, "Unable to close window {}".format(new_handle)
-
- session.window_handle = original_handle
-
-
-@pytest.fixture
-def closed_window(session, inline):
- original_handle = session.window_handle
- new_handle = session.new_window()
-
- session.window_handle = new_handle
- session.url = inline("<input id='a' value='b'>")
- element = session.find.css("input", all=False)
-
- session.window.close()
- assert new_handle not in session.handles, "Unable to close window {}".format(new_handle)
-
- yield (original_handle, element)
-
- session.window_handle = original_handle
-
-
-@pytest.fixture
def inline(url):
- """Takes a source extract and produces well-formed documents.
+ """Take a source extract and produces well-formed documents.
Based on the desired document type, the extract is embedded with
predefined boilerplate in order to produce well-formed documents.
@@ -350,7 +222,7 @@
@pytest.fixture
def iframe(inline):
- """Inlines document extract as the source document of an <iframe>."""
+ """Inline document extract as the source document of an <iframe>."""
def iframe(src, **kwargs):
return "<iframe src='{}'></iframe>".format(inline(src, **kwargs))
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures_bidi.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures_bidi.py
new file mode 100644
index 0000000..cdfa3a0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures_bidi.py
@@ -0,0 +1,14 @@
+import asyncio
+from typing import Any, Mapping
+
+import pytest
+import webdriver
+
+
+@pytest.fixture
+def send_blocking_command(bidi_session):
+ """Send a blocking command that awaits until the BiDi response has been received."""
+ async def send_blocking_command(command: str, params: Mapping[str, Any]) -> Mapping[str, Any]:
+ future_response = await bidi_session.send_command(command, params)
+ return await future_response
+ return send_blocking_command
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures_http.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures_http.py
new file mode 100644
index 0000000..2d961d7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures_http.py
@@ -0,0 +1,152 @@
+import pytest
+from webdriver.error import NoSuchAlertException
+
+from tests.support.sync import Poll
+
+
+@pytest.fixture
+def add_event_listeners(session):
+ """Register listeners for tracked events on element."""
+ def add_event_listeners(element, tracked_events):
+ element.session.execute_script("""
+ let element = arguments[0];
+ let trackedEvents = arguments[1];
+
+ if (!("events" in window)) {
+ window.events = [];
+ }
+
+ for (var i = 0; i < trackedEvents.length; i++) {
+ element.addEventListener(trackedEvents[i], function (event) {
+ window.events.push(event.type);
+ });
+ }
+ """, args=(element, tracked_events))
+ return add_event_listeners
+
+
+@pytest.fixture
+def closed_frame(session, url):
+ """Create a frame and remove it after switching to it.
+
+ The removed frame will be kept selected, which allows to test for invalid
+ browsing context references.
+ """
+ original_handle = session.window_handle
+ new_handle = session.new_window()
+
+ session.window_handle = new_handle
+
+ session.url = url("/webdriver/tests/support/html/frames.html")
+
+ subframe = session.find.css("#sub-frame", all=False)
+ session.switch_frame(subframe)
+
+ deleteframe = session.find.css("#delete-frame", all=False)
+ session.switch_frame(deleteframe)
+
+ button = session.find.css("#remove-parent", all=False)
+ button.click()
+
+ yield
+
+ session.window.close()
+ assert new_handle not in session.handles, "Unable to close window {}".format(new_handle)
+
+ session.window_handle = original_handle
+
+
+@pytest.fixture
+def closed_window(session, inline):
+ """Create a window and close it immediately.
+
+ The window handle will be kept selected, which allows to test for invalid
+ top-level browsing context references.
+ """
+ original_handle = session.window_handle
+ new_handle = session.new_window()
+
+ session.window_handle = new_handle
+ session.url = inline("<input id='a' value='b'>")
+ element = session.find.css("input", all=False)
+
+ session.window.close()
+ assert new_handle not in session.handles, "Unable to close window {}".format(new_handle)
+
+ yield (original_handle, element)
+
+ session.window_handle = original_handle
+
+
+@pytest.fixture
+def create_cookie(session, url):
+ """Create a cookie."""
+ def create_cookie(name, value, **kwargs):
+ if kwargs.get("path", None) is not None:
+ session.url = url(kwargs["path"])
+
+ session.set_cookie(name, value, **kwargs)
+ return session.cookies(name)
+
+ return create_cookie
+
+
+@pytest.fixture
+def create_dialog(session):
+ """Create a dialog (one of "alert", "prompt", or "confirm").
+
+ Also it provides a function to validate that the dialog has been "handled"
+ (either accepted or dismissed) by returning some value.
+ """
+ def create_dialog(dialog_type, text=None):
+ assert dialog_type in ("alert", "confirm", "prompt"), (
+ "Invalid dialog type: '%s'" % dialog_type)
+
+ if text is None:
+ text = ""
+
+ assert isinstance(text, str), "`text` parameter must be a string"
+
+ # Script completes itself when the user prompt has been opened.
+ # For prompt() dialogs, add a value for the 'default' argument,
+ # as some user agents (IE, for example) do not produce consistent
+ # values for the default.
+ session.execute_async_script("""
+ let dialog_type = arguments[0];
+ let text = arguments[1];
+
+ setTimeout(function() {
+ if (dialog_type == 'prompt') {
+ window.dialog_return_value = window[dialog_type](text, '');
+ } else {
+ window.dialog_return_value = window[dialog_type](text);
+ }
+ }, 0);
+ """, args=(dialog_type, text))
+
+ wait = Poll(
+ session,
+ timeout=15,
+ ignored_exceptions=NoSuchAlertException,
+ message="No user prompt with text '{}' detected".format(text))
+ wait.until(lambda s: s.alert.text == text)
+
+ return create_dialog
+
+
+@pytest.fixture
+def create_frame(session):
+ """Create an `iframe` element.
+
+ The element will be inserted into the document of the current browsing
+ context. Return a reference to the newly-created element.
+ """
+ def create_frame():
+ append = """
+ var frame = document.createElement('iframe');
+ document.body.appendChild(frame);
+ return frame;
+ """
+ return session.execute_script(append)
+
+ return create_frame
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/payment-request/show-consume-activation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/payment-request/show-consume-activation.https-expected.txt
new file mode 100644
index 0000000..6ce29124
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/payment-request/show-consume-activation.https-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL Calling share consumes user activation promise_rejects_dom: function "function() { throw e }" threw object "UnknownError: Renderer process could not establish or lost IPC connection to the PaymentRequest service in the browser process." that is not a DOMException NotAllowedError: property "name" is equal to "UnknownError", expected "NotAllowedError"
+Harness: the test ran to completion.
+