Commit 193b96b1 authored by Stephen McGruer's avatar Stephen McGruer Committed by Chromium LUCI CQ

Roll wpt tooling.

This rolls up to WPT SHA f333959abe07e6c4cfb388f4f7a03a0a109b38a5

Importantly, it brings in
https://github.com/web-platform-tests/wpt/pull/27175 which should allow
us to move 'wpt manifest' calls back to Python 3. (This CL does not make
that switch, it is just rolling tools).

It also brings in the change that makes '--py3' the default mode
for 'wpt'. Since the wptrunner bots aren't ready for that yet, I also
updated testing/scripts/{run_android_wpt.py, run_wpt_tests.py} to
pass --py2 to 'wpt'.

Bug: 1161274, 1166741

Cq-Include-Trybots: luci.chromium.try:linux-wpt-identity-fyi-rel,linux-wpt-input-fyi-rel
Change-Id: I0978d0685f2ef387e22e87e433d4a191e09e7597
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2627882Reviewed-by: default avatarLuke Z <lpz@chromium.org>
Reviewed-by: default avatarStephen Martinis <martiniss@chromium.org>
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843760}
parent b8623ff5
...@@ -125,6 +125,9 @@ class WPTAndroidAdapter(wpt_common.BaseWptScriptAdapter): ...@@ -125,6 +125,9 @@ class WPTAndroidAdapter(wpt_common.BaseWptScriptAdapter):
# Here we add all of the arguments required to run WPT tests on Android. # Here we add all of the arguments required to run WPT tests on Android.
rest_args.extend([self.options.wpt_path]) rest_args.extend([self.options.wpt_path])
# TODO(crbug.com/1166741): We should be running WPT under Python 3.
rest_args.extend(["--py2"])
# vpython has packages needed by wpt, so force it to skip the setup # vpython has packages needed by wpt, so force it to skip the setup
rest_args.extend(["--venv=../../", "--skip-venv-setup"]) rest_args.extend(["--venv=../../", "--skip-venv-setup"])
......
...@@ -55,6 +55,8 @@ class WPTTestAdapter(wpt_common.BaseWptScriptAdapter): ...@@ -55,6 +55,8 @@ class WPTTestAdapter(wpt_common.BaseWptScriptAdapter):
"../../third_party/blink/tools/blinkpy/third_party/wpt/wpt/wpt", "../../third_party/blink/tools/blinkpy/third_party/wpt/wpt/wpt",
"--venv=../../", "--venv=../../",
"--skip-venv-setup", "--skip-venv-setup",
# TODO(crbug.com/1166741): We should be running WPT under Python 3.
"--py2",
"run", "run",
"chrome" "chrome"
] + self.options.test_list + [ ] + self.options.test_list + [
......
...@@ -22,7 +22,7 @@ Local Modifications: None ...@@ -22,7 +22,7 @@ Local Modifications: None
Name: web-platform-tests - Test Suites for Web Platform specifications Name: web-platform-tests - Test Suites for Web Platform specifications
Short Name: wpt Short Name: wpt
URL: https://github.com/web-platform-tests/wpt/ URL: https://github.com/web-platform-tests/wpt/
Version: e04f27b9946175edab6c09421ab5ceaa14b84539 Version: f333959abe07e6c4cfb388f4f7a03a0a109b38a5
License: LICENSES FOR W3C TEST SUITES (https://www.w3.org/Consortium/Legal/2008/03-bsd-license.html) License: LICENSES FOR W3C TEST SUITES (https://www.w3.org/Consortium/Legal/2008/03-bsd-license.html)
License File: wpt/wpt/LICENSE.md License File: wpt/wpt/LICENSE.md
Security Critical: no Security Critical: no
......
...@@ -9,7 +9,7 @@ cd $DIR ...@@ -9,7 +9,7 @@ cd $DIR
TARGET_DIR=$DIR/wpt TARGET_DIR=$DIR/wpt
REMOTE_REPO="https://github.com/web-platform-tests/wpt.git" REMOTE_REPO="https://github.com/web-platform-tests/wpt.git"
WPT_HEAD=e04f27b9946175edab6c09421ab5ceaa14b84539 WPT_HEAD=f333959abe07e6c4cfb388f4f7a03a0a109b38a5
function clone { function clone {
# Remove existing repo if already exists. # Remove existing repo if already exists.
......
-----BEGIN ENCRYPTED PRIVATE KEY----- -----BEGIN ENCRYPTED PRIVATE KEY-----
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
8Lo4YqfmCdNAzsSJ6rhC1A== v2L3tYSDEmQ+6kEynWtX/w==
-----END ENCRYPTED PRIVATE KEY----- -----END ENCRYPTED PRIVATE KEY-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIJAhzCCP2+gAwIBAgIDBPWrMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl MIJAhzCCP2+gAwIBAgIDBlVFMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMDEyMTIwMDI4MjdaFw0yMTEyMTIwMDI4Mjda Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMTAxMTIxNjEzMjhaFw0yMjAxMTIxNjEzMjha
MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBALyIJvebVlTCq1p3h+cow7sp3qjhVJQASg+v7huHucEG BQADggEPADCCAQoCggEBAKlAc+52QkFGs3xjT0OiT3t7HajqFqelNp5toVZfL/SF
eoq11qbpaJ9WkeHxYO6PjpIHegpogvqKXmkV02BMqt+5ULEWIYpaz4VHiEH4E8Wc cXqvhldvWzlKs3XW4+OKnGQP1nB7qmZZ8GjSY02Nho36Vq+YdzmHIHYPZcAlfmNO
zZXYSDFDC40zDLjrzt1+BZYlMpBTeSRj7WLkD/Qhb6ZozAzDJhoJRpEkmQZ0t14s 6iY/nca7C9MEIVJvxQsG/C5ZUTkKJ93iDehGay5YF8wiIb+k6cmaV5cDs+oBwmwu
55feXzm87ZOiEm2d2B33JPpWhw+tusLufcGoz4D4e9tNOtXPdus/QpXRdsdoy53L X3hxsDjOklUYCVY4Wvd4fU/zR/LdI3QZTAlNa4eLu7v/8z0vo8vG7T8VS09mc6eh
WI8GRPfJKrhQ1gXnBXTcDJpXDPqk8JMsciYL+63MiVOZ93v4dD3uueK5Lsn/krVV BjB0x1L7XE6n+4v3gGE8RbxeaIpZbv8vVWK1LLLQ01gCOiNFjuuD3VcBqnZTbV9/
Eoivkz1ONiXVgI1oQMJO7eFylka85fikC7r316ZCcJ0CAwEAAaOCPc4wgj3KMAwG v4MqHrPFfZm1MxesB/kybMTve4Y6PjT1U3zgJsrV0UcCAwEAAaOCPc4wgj3KMAwG
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFKepXnGpqWQbsgOM0WPj+KHQtRpoMEcGA1Ud A1UdEwQFMAMBAf8wHQYDVR0OBBYEFNxtjWLdVJjIYBfC01Gzv3NbXJC5MEcGA1Ud
IwRAMD6AFKepXnGpqWQbsgOM0WPj+KHQtRpooSGkHzAdMRswGQYDVQQDDBJ3ZWIt IwRAMD6AFNxtjWLdVJjIYBfC01Gzv3NbXJC5oSGkHzAdMRswGQYDVQQDDBJ3ZWIt
cGxhdGZvcm0tdGVzdHOCAwT1qzALBgNVHQ8EBAMCAgQwgh+bBgNVHR4Egh+SMIIf cGxhdGZvcm0tdGVzdHOCAwZVRTALBgNVHQ8EBAMCAgQwgh+bBgNVHR4Egh+SMIIf
jqCCH4owE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVb3A4LndlYi1wbGF0Zm9ybS50 jqCCH4owE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVb3A4LndlYi1wbGF0Zm9ybS50
ZXN0MBeCFW9wNy53ZWItcGxhdGZvcm0udGVzdDAXghVvcDkud2ViLXBsYXRmb3Jt ZXN0MBeCFW9wNy53ZWItcGxhdGZvcm0udGVzdDAXghVvcDkud2ViLXBsYXRmb3Jt
LnRlc3QwF4IVb3A0LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW5vdC13ZWItcGxhdGZv LnRlc3QwF4IVb3A0LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW5vdC13ZWItcGxhdGZv
...@@ -337,11 +337,11 @@ d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3dr ...@@ -337,11 +337,11 @@ d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3dr
cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0 cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0
gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4 gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAHRhJQlg YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAHOGp2Ji
uwzvgj4WGzomthrmeYpP9hELJzW8jPDyTZosUeX63zmctP46cFlcFPSZJn5UGUrP xKvvqNucL2gpFBIpsT8abmKBLBm4LsSBGEFPy12fDztkWBVTEN/WiyHRL93PPnn2
hpwdC5RJx9cGjYUjqqgahM+R5bpo0NqJJZfiO0a+yndxUwYRawW/fGDnyFwcXl7p YFn3/jSuAgq0LkSx8VB/Xn2CZgY9+WzL4++GN6I6kYAuuvG4/P6iwwDCwX7y2coD
QYD1dpw+u5b1m9+B4GW3hXqzBLwBKJ8mH62E4RZQwSBMsSNiDLRsPFAdc/IIHKUS D75E4WVVTjEsKG2vRiVWzccmg/BTmvXQJU8DSPhzPQtU/D8qHUIe/McHmEW9sxpG
B8zI53byoNLzjGSDjaw77n2arGS3CuoBbYyiMxVVmdRgZ8pbHewfKkwKNdsnGGgr ktJSXqAe0VnvwPXhJ/scOiyJaXvC8mRjM50nUGny0n9Nywltm3oxOAVAZIahZa7g
0YHlg2WQ/lBSOvPovAti89vkWzPJYhJbPS2ybaHOAzVJxmqP3dpBoL2vw8yTIM6G KMnRywojNqlkccXeHCjH1wXOhzuyQX+MvvBqq968ttIV/hbUXh+D/Su9M0qQclbA
kGxP4JsY0GYmQ+U= 09vdXeld+rSxP8s=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN PRIVATE KEY----- -----BEGIN PRIVATE KEY-----
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
oYu93U3AsLggvr23JopNBxSQ Yet1DMpvmPlX1kZsEh072zBs
-----END PRIVATE KEY----- -----END PRIVATE KEY-----
Certificate: Certificate:
Data: Data:
Version: 3 (0x2) Version: 3 (0x2)
Serial Number: 325036 (0x4f5ac) Serial Number: 415046 (0x65546)
Signature Algorithm: sha256WithRSAEncryption Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=web-platform-tests Issuer: CN=web-platform-tests
Validity Validity
Not Before: Dec 12 00:28:27 2020 GMT Not Before: Jan 12 16:13:28 2021 GMT
Not After : Dec 12 00:28:27 2021 GMT Not After : Jan 12 16:13:28 2022 GMT
Subject: CN=web-platform.test Subject: CN=web-platform.test
Subject Public Key Info: Subject Public Key Info:
Public Key Algorithm: rsaEncryption Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit) RSA Public-Key: (2048 bit)
Modulus: Modulus:
00:c4:de:22:79:11:3a:fb:1b:29:66:f8:f6:a7:a3: 00:dc:c2:17:73:88:4b:f6:58:09:2f:2b:fc:29:79:
8a:a3:24:17:7f:bc:15:71:f3:53:af:1a:17:43:76: c9:f9:2d:10:29:ad:b5:91:8d:aa:2d:69:c5:ef:92:
80:f4:53:a7:d5:67:16:28:b0:5b:d9:3f:08:aa:ef: da:31:4b:46:8a:d9:f7:f7:e3:08:95:ec:6a:c1:b9:
e2:78:bc:cd:0f:bf:5e:99:f9:36:8c:29:98:90:9d: cc:71:53:cd:62:dc:b0:ae:72:77:7c:d9:d1:93:e2:
0c:00:04:a0:48:52:5b:9f:02:b0:2e:45:5b:62:be: f1:df:cd:32:8a:69:be:7f:fa:fb:ad:d4:53:68:1b:
ca:31:61:d9:ae:38:52:74:7b:f2:8d:69:e2:fd:ce: 90:4a:98:66:19:0a:93:a8:e8:c6:4e:58:02:49:e3:
37:e0:2b:59:98:2b:5c:ca:ff:13:4d:22:df:ce:a5: 35:d8:40:10:04:78:ab:ab:4a:38:25:cc:e5:d6:9a:
62:7f:18:f3:12:0a:4c:b0:67:da:33:04:9e:3e:d2: 34:a9:00:4c:cc:f5:3a:94:1b:ae:a5:a6:84:8a:e7:
f7:db:f9:d7:43:66:bb:8a:7c:e3:2a:4d:44:4b:e3: cc:ef:ee:09:de:0d:b8:c3:9c:98:5b:29:86:50:ba:
37:25:ba:49:5d:e5:e8:1d:bd:3f:b5:c4:5d:75:ca: b3:4e:9b:73:cb:31:dd:1e:a7:7f:f2:c6:ac:2a:56:
f6:2d:3e:77:18:03:87:3c:bb:88:38:af:2d:e7:37: 26:b5:9c:e9:fe:c5:ae:19:a0:5a:d6:c2:0b:96:0c:
c6:f7:0c:40:60:af:46:96:33:77:fd:b9:72:d5:85: ac:74:f7:28:41:28:45:43:1d:7b:40:19:f6:69:f4:
d7:52:aa:dd:10:cb:b2:29:6a:a5:88:d5:c0:30:4f: 45:80:4e:ab:84:b2:a1:52:a1:e2:ea:c9:00:ef:7d:
d0:ea:d5:50:09:2b:66:41:1e:7f:55:41:42:d2:9d: ee:47:79:f8:b8:74:f9:98:df:63:a2:24:6e:00:ad:
57:3e:ba:79:8a:f1:65:34:46:0a:ac:e6:cd:35:d8: 22:9e:83:1c:91:7a:44:19:f0:4e:31:de:69:e5:b7:
1f:68:07:a3:5f:a5:08:6d:e8:52:1c:f8:f4:11:36: 7a:6b:0b:a9:d9:15:ec:4b:1b:ad:14:3a:2c:7f:00:
57:4d:8a:6c:58:91:bd:ae:9d:e3:ba:af:f0:a3:89: dd:d1:89:fa:47:0d:ec:bc:66:af:cb:a4:6b:32:f8:
59:5f d4:fb
Exponent: 65537 (0x10001) Exponent: 65537 (0x10001)
X509v3 extensions: X509v3 extensions:
X509v3 Basic Constraints: X509v3 Basic Constraints:
CA:FALSE CA:FALSE
X509v3 Subject Key Identifier: X509v3 Subject Key Identifier:
F5:4B:78:98:A0:A3:36:E3:6F:B8:3C:19:E2:F7:BE:70:0E:F8:70:73 CD:F1:C8:62:D1:EC:A5:3D:E4:1A:91:70:F1:02:E6:6E:BC:2F:E2:05
X509v3 Authority Key Identifier: X509v3 Authority Key Identifier:
keyid:A7:A9:5E:71:A9:A9:64:1B:B2:03:8C:D1:63:E3:F8:A1:D0:B5:1A:68 keyid:DC:6D:8D:62:DD:54:98:C8:60:17:C2:D3:51:B3:BF:73:5B:5C:90:B9
X509v3 Key Usage: X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment Digital Signature, Non Repudiation, Key Encipherment
...@@ -46,33 +46,33 @@ Certificate: ...@@ -46,33 +46,33 @@ Certificate:
X509v3 Subject Alternative Name: X509v3 Subject Alternative Name:
DNS:web-platform.test, DNS:op8.web-platform.test, DNS:op7.web-platform.test, DNS:op9.web-platform.test, DNS:op4.web-platform.test, DNS:not-web-platform.test, DNS:op6.web-platform.test, DNS:op3.web-platform.test, DNS:op2.web-platform.test, DNS:op1.web-platform.test, DNS:www.web-platform.test, DNS:op5.web-platform.test, DNS:op88.web-platform.test, DNS:op98.web-platform.test, DNS:op85.web-platform.test, DNS:op89.web-platform.test, DNS:op66.web-platform.test, DNS:op72.web-platform.test, DNS:op24.web-platform.test, DNS:op41.web-platform.test, DNS:op79.web-platform.test, DNS:op91.web-platform.test, DNS:op59.web-platform.test, DNS:op39.web-platform.test, DNS:op60.web-platform.test, DNS:op58.web-platform.test, DNS:op28.web-platform.test, DNS:www1.web-platform.test, DNS:op14.web-platform.test, DNS:op69.web-platform.test, DNS:op40.web-platform.test, DNS:op74.web-platform.test, DNS:op31.web-platform.test, DNS:op18.web-platform.test, DNS:op73.web-platform.test, DNS:op77.web-platform.test, DNS:op12.web-platform.test, DNS:op54.web-platform.test, DNS:op63.web-platform.test, DNS:op71.web-platform.test, DNS:op95.web-platform.test, DNS:op16.web-platform.test, DNS:op36.web-platform.test, DNS:op27.web-platform.test, DNS:op29.web-platform.test, DNS:op94.web-platform.test, DNS:op44.web-platform.test, DNS:op33.web-platform.test, DNS:op84.web-platform.test, DNS:op32.web-platform.test, DNS:op61.web-platform.test, DNS:op70.web-platform.test, DNS:www2.web-platform.test, DNS:op43.web-platform.test, DNS:op78.web-platform.test, DNS:op26.web-platform.test, DNS:op76.web-platform.test, DNS:op52.web-platform.test, DNS:op99.web-platform.test, DNS:op86.web-platform.test, DNS:op46.web-platform.test, DNS:op17.web-platform.test, DNS:op90.web-platform.test, DNS:op93.web-platform.test, DNS:op10.web-platform.test, DNS:op55.web-platform.test, DNS:op47.web-platform.test, DNS:op51.web-platform.test, DNS:op45.web-platform.test, DNS:op80.web-platform.test, DNS:op68.web-platform.test, DNS:op49.web-platform.test, DNS:op57.web-platform.test, DNS:op35.web-platform.test, DNS:op67.web-platform.test, DNS:op92.web-platform.test, DNS:op15.web-platform.test, DNS:op13.web-platform.test, DNS:op75.web-platform.test, DNS:op64.web-platform.test, DNS:op97.web-platform.test, DNS:op37.web-platform.test, DNS:op56.web-platform.test, DNS:op62.web-platform.test, DNS:op82.web-platform.test, DNS:op25.web-platform.test, DNS:op11.web-platform.test, DNS:op50.web-platform.test, DNS:op38.web-platform.test, DNS:op83.web-platform.test, DNS:op81.web-platform.test, DNS:op20.web-platform.test, DNS:op21.web-platform.test, DNS:op23.web-platform.test, DNS:op42.web-platform.test, DNS:op22.web-platform.test, DNS:op65.web-platform.test, DNS:op96.web-platform.test, DNS:op87.web-platform.test, DNS:op19.web-platform.test, DNS:op53.web-platform.test, DNS:op30.web-platform.test, DNS:op48.web-platform.test, DNS:op34.web-platform.test, DNS:op6.not-web-platform.test, DNS:op3.not-web-platform.test, DNS:op2.not-web-platform.test, DNS:op5.not-web-platform.test, DNS:www.not-web-platform.test, DNS:www.www.web-platform.test, DNS:op7.not-web-platform.test, DNS:op4.not-web-platform.test, DNS:op8.not-web-platform.test, DNS:op9.not-web-platform.test, DNS:op1.not-web-platform.test, DNS:op36.not-web-platform.test, DNS:op53.not-web-platform.test, DNS:op50.not-web-platform.test, DNS:op24.not-web-platform.test, DNS:op31.not-web-platform.test, DNS:op95.not-web-platform.test, DNS:op83.not-web-platform.test, DNS:www2.not-web-platform.test, DNS:op73.not-web-platform.test, DNS:op19.not-web-platform.test, DNS:op21.not-web-platform.test, DNS:op81.not-web-platform.test, DNS:op70.not-web-platform.test, DNS:op78.not-web-platform.test, DNS:op40.not-web-platform.test, DNS:op25.not-web-platform.test, DNS:op65.not-web-platform.test, DNS:www.www2.web-platform.test, DNS:op80.not-web-platform.test, DNS:op52.not-web-platform.test, DNS:op68.not-web-platform.test, DNS:op45.not-web-platform.test, DNS:op71.not-web-platform.test, DNS:op72.not-web-platform.test, DNS:op90.not-web-platform.test, DNS:op89.not-web-platform.test, DNS:op49.not-web-platform.test, DNS:op77.not-web-platform.test, DNS:op79.not-web-platform.test, DNS:op82.not-web-platform.test, DNS:www.www1.web-platform.test, DNS:op12.not-web-platform.test, DNS:op39.not-web-platform.test, DNS:op44.not-web-platform.test, DNS:www1.not-web-platform.test, DNS:op58.not-web-platform.test, DNS:op14.not-web-platform.test, DNS:op30.not-web-platform.test, DNS:op62.not-web-platform.test, DNS:op61.not-web-platform.test, DNS:op92.not-web-platform.test, DNS:op29.not-web-platform.test, DNS:op98.not-web-platform.test, DNS:op64.not-web-platform.test, DNS:op26.not-web-platform.test, DNS:op22.not-web-platform.test, DNS:op94.not-web-platform.test, DNS:op38.not-web-platform.test, DNS:op33.not-web-platform.test, DNS:op23.not-web-platform.test, DNS:op57.not-web-platform.test, DNS:op54.not-web-platform.test, DNS:op85.not-web-platform.test, DNS:op46.not-web-platform.test, DNS:op97.not-web-platform.test, DNS:op32.not-web-platform.test, DNS:op60.not-web-platform.test, DNS:op96.not-web-platform.test, DNS:op51.not-web-platform.test, DNS:op41.not-web-platform.test, DNS:op35.not-web-platform.test, DNS:op99.not-web-platform.test, DNS:op42.not-web-platform.test, DNS:op67.not-web-platform.test, DNS:op37.not-web-platform.test, DNS:op48.not-web-platform.test, DNS:op55.not-web-platform.test, DNS:op56.not-web-platform.test, DNS:op84.not-web-platform.test, DNS:op34.not-web-platform.test, DNS:op69.not-web-platform.test, DNS:op11.not-web-platform.test, DNS:op93.not-web-platform.test, DNS:www1.www.web-platform.test, DNS:op86.not-web-platform.test, DNS:op13.not-web-platform.test, DNS:op20.not-web-platform.test, DNS:op76.not-web-platform.test, DNS:op27.not-web-platform.test, DNS:op17.not-web-platform.test, DNS:op75.not-web-platform.test, DNS:op15.not-web-platform.test, DNS:op47.not-web-platform.test, DNS:op18.not-web-platform.test, DNS:op63.not-web-platform.test, DNS:op28.not-web-platform.test, DNS:op43.not-web-platform.test, DNS:op66.not-web-platform.test, DNS:www2.www.web-platform.test, DNS:op91.not-web-platform.test, DNS:op74.not-web-platform.test, DNS:op59.not-web-platform.test, DNS:op88.not-web-platform.test, DNS:op87.not-web-platform.test, DNS:op10.not-web-platform.test, DNS:op16.not-web-platform.test, DNS:www1.www2.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www.www.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www1.www.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:www.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www1.not-web-platform.test, DNS:www2.xn--lve-6lad.not-web-platform.test, DNS:www1.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test DNS:web-platform.test, DNS:op8.web-platform.test, DNS:op7.web-platform.test, DNS:op9.web-platform.test, DNS:op4.web-platform.test, DNS:not-web-platform.test, DNS:op6.web-platform.test, DNS:op3.web-platform.test, DNS:op2.web-platform.test, DNS:op1.web-platform.test, DNS:www.web-platform.test, DNS:op5.web-platform.test, DNS:op88.web-platform.test, DNS:op98.web-platform.test, DNS:op85.web-platform.test, DNS:op89.web-platform.test, DNS:op66.web-platform.test, DNS:op72.web-platform.test, DNS:op24.web-platform.test, DNS:op41.web-platform.test, DNS:op79.web-platform.test, DNS:op91.web-platform.test, DNS:op59.web-platform.test, DNS:op39.web-platform.test, DNS:op60.web-platform.test, DNS:op58.web-platform.test, DNS:op28.web-platform.test, DNS:www1.web-platform.test, DNS:op14.web-platform.test, DNS:op69.web-platform.test, DNS:op40.web-platform.test, DNS:op74.web-platform.test, DNS:op31.web-platform.test, DNS:op18.web-platform.test, DNS:op73.web-platform.test, DNS:op77.web-platform.test, DNS:op12.web-platform.test, DNS:op54.web-platform.test, DNS:op63.web-platform.test, DNS:op71.web-platform.test, DNS:op95.web-platform.test, DNS:op16.web-platform.test, DNS:op36.web-platform.test, DNS:op27.web-platform.test, DNS:op29.web-platform.test, DNS:op94.web-platform.test, DNS:op44.web-platform.test, DNS:op33.web-platform.test, DNS:op84.web-platform.test, DNS:op32.web-platform.test, DNS:op61.web-platform.test, DNS:op70.web-platform.test, DNS:www2.web-platform.test, DNS:op43.web-platform.test, DNS:op78.web-platform.test, DNS:op26.web-platform.test, DNS:op76.web-platform.test, DNS:op52.web-platform.test, DNS:op99.web-platform.test, DNS:op86.web-platform.test, DNS:op46.web-platform.test, DNS:op17.web-platform.test, DNS:op90.web-platform.test, DNS:op93.web-platform.test, DNS:op10.web-platform.test, DNS:op55.web-platform.test, DNS:op47.web-platform.test, DNS:op51.web-platform.test, DNS:op45.web-platform.test, DNS:op80.web-platform.test, DNS:op68.web-platform.test, DNS:op49.web-platform.test, DNS:op57.web-platform.test, DNS:op35.web-platform.test, DNS:op67.web-platform.test, DNS:op92.web-platform.test, DNS:op15.web-platform.test, DNS:op13.web-platform.test, DNS:op75.web-platform.test, DNS:op64.web-platform.test, DNS:op97.web-platform.test, DNS:op37.web-platform.test, DNS:op56.web-platform.test, DNS:op62.web-platform.test, DNS:op82.web-platform.test, DNS:op25.web-platform.test, DNS:op11.web-platform.test, DNS:op50.web-platform.test, DNS:op38.web-platform.test, DNS:op83.web-platform.test, DNS:op81.web-platform.test, DNS:op20.web-platform.test, DNS:op21.web-platform.test, DNS:op23.web-platform.test, DNS:op42.web-platform.test, DNS:op22.web-platform.test, DNS:op65.web-platform.test, DNS:op96.web-platform.test, DNS:op87.web-platform.test, DNS:op19.web-platform.test, DNS:op53.web-platform.test, DNS:op30.web-platform.test, DNS:op48.web-platform.test, DNS:op34.web-platform.test, DNS:op6.not-web-platform.test, DNS:op3.not-web-platform.test, DNS:op2.not-web-platform.test, DNS:op5.not-web-platform.test, DNS:www.not-web-platform.test, DNS:www.www.web-platform.test, DNS:op7.not-web-platform.test, DNS:op4.not-web-platform.test, DNS:op8.not-web-platform.test, DNS:op9.not-web-platform.test, DNS:op1.not-web-platform.test, DNS:op36.not-web-platform.test, DNS:op53.not-web-platform.test, DNS:op50.not-web-platform.test, DNS:op24.not-web-platform.test, DNS:op31.not-web-platform.test, DNS:op95.not-web-platform.test, DNS:op83.not-web-platform.test, DNS:www2.not-web-platform.test, DNS:op73.not-web-platform.test, DNS:op19.not-web-platform.test, DNS:op21.not-web-platform.test, DNS:op81.not-web-platform.test, DNS:op70.not-web-platform.test, DNS:op78.not-web-platform.test, DNS:op40.not-web-platform.test, DNS:op25.not-web-platform.test, DNS:op65.not-web-platform.test, DNS:www.www2.web-platform.test, DNS:op80.not-web-platform.test, DNS:op52.not-web-platform.test, DNS:op68.not-web-platform.test, DNS:op45.not-web-platform.test, DNS:op71.not-web-platform.test, DNS:op72.not-web-platform.test, DNS:op90.not-web-platform.test, DNS:op89.not-web-platform.test, DNS:op49.not-web-platform.test, DNS:op77.not-web-platform.test, DNS:op79.not-web-platform.test, DNS:op82.not-web-platform.test, DNS:www.www1.web-platform.test, DNS:op12.not-web-platform.test, DNS:op39.not-web-platform.test, DNS:op44.not-web-platform.test, DNS:www1.not-web-platform.test, DNS:op58.not-web-platform.test, DNS:op14.not-web-platform.test, DNS:op30.not-web-platform.test, DNS:op62.not-web-platform.test, DNS:op61.not-web-platform.test, DNS:op92.not-web-platform.test, DNS:op29.not-web-platform.test, DNS:op98.not-web-platform.test, DNS:op64.not-web-platform.test, DNS:op26.not-web-platform.test, DNS:op22.not-web-platform.test, DNS:op94.not-web-platform.test, DNS:op38.not-web-platform.test, DNS:op33.not-web-platform.test, DNS:op23.not-web-platform.test, DNS:op57.not-web-platform.test, DNS:op54.not-web-platform.test, DNS:op85.not-web-platform.test, DNS:op46.not-web-platform.test, DNS:op97.not-web-platform.test, DNS:op32.not-web-platform.test, DNS:op60.not-web-platform.test, DNS:op96.not-web-platform.test, DNS:op51.not-web-platform.test, DNS:op41.not-web-platform.test, DNS:op35.not-web-platform.test, DNS:op99.not-web-platform.test, DNS:op42.not-web-platform.test, DNS:op67.not-web-platform.test, DNS:op37.not-web-platform.test, DNS:op48.not-web-platform.test, DNS:op55.not-web-platform.test, DNS:op56.not-web-platform.test, DNS:op84.not-web-platform.test, DNS:op34.not-web-platform.test, DNS:op69.not-web-platform.test, DNS:op11.not-web-platform.test, DNS:op93.not-web-platform.test, DNS:www1.www.web-platform.test, DNS:op86.not-web-platform.test, DNS:op13.not-web-platform.test, DNS:op20.not-web-platform.test, DNS:op76.not-web-platform.test, DNS:op27.not-web-platform.test, DNS:op17.not-web-platform.test, DNS:op75.not-web-platform.test, DNS:op15.not-web-platform.test, DNS:op47.not-web-platform.test, DNS:op18.not-web-platform.test, DNS:op63.not-web-platform.test, DNS:op28.not-web-platform.test, DNS:op43.not-web-platform.test, DNS:op66.not-web-platform.test, DNS:www2.www.web-platform.test, DNS:op91.not-web-platform.test, DNS:op74.not-web-platform.test, DNS:op59.not-web-platform.test, DNS:op88.not-web-platform.test, DNS:op87.not-web-platform.test, DNS:op10.not-web-platform.test, DNS:op16.not-web-platform.test, DNS:www1.www2.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www.www.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www1.www.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:www.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www1.not-web-platform.test, DNS:www2.xn--lve-6lad.not-web-platform.test, DNS:www1.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
Signature Algorithm: sha256WithRSAEncryption Signature Algorithm: sha256WithRSAEncryption
69:64:ad:f6:53:84:f8:7e:e2:6d:0a:4a:ff:3f:44:d0:30:4f: 38:a7:ef:eb:55:30:e8:6f:bf:51:a9:eb:52:9a:66:ec:3d:19:
aa:db:18:8c:1a:49:28:76:04:19:61:1b:34:4b:d9:63:da:96: 5d:f4:1d:84:17:c0:f2:26:3e:2b:66:5d:7a:a9:44:86:c3:ba:
e1:73:67:26:cf:b0:71:ef:0f:0a:e8:db:17:00:5b:48:cc:89: d7:f0:9e:e7:b2:b3:05:0c:25:ef:e1:b7:94:8c:44:1c:d2:57:
6d:a5:c5:41:c5:ea:5e:6f:2a:4f:5e:68:f0:93:69:3c:32:6c: 4c:30:51:96:29:96:2e:b3:e3:1c:f8:9c:e6:7d:96:14:3f:3f:
15:7f:f5:bd:9b:f8:ab:82:01:65:42:c2:d5:f5:26:9e:06:2b: 3e:a6:96:4b:01:dc:f2:ed:bf:fc:e3:64:93:49:81:be:c9:dd:
84:46:74:99:bd:44:d2:17:3b:28:7b:61:61:a3:55:7c:90:6d: dd:1b:ce:da:72:45:d1:2d:ca:99:cd:d1:7d:f9:17:e1:ee:12:
7e:88:6e:3c:ce:73:ac:90:a2:89:72:ee:17:0d:e8:21:2d:9d: f4:ed:76:41:ca:6f:a5:5c:72:00:4a:8d:76:c5:2b:b7:18:7b:
f7:b0:86:2f:53:8c:70:84:25:3c:6f:33:f4:12:39:7d:68:28: ce:e8:ab:76:9a:75:e9:1d:53:9b:75:93:6d:0b:2e:49:3f:bf:
24:31:44:a5:66:05:29:8e:9d:f3:df:62:df:5b:e0:37:d9:15: 84:1f:71:be:49:23:ab:2c:f8:a6:a2:28:93:82:04:6c:8e:85:
44:fc:33:f0:63:8e:93:74:10:db:4f:72:5c:2c:b7:ab:18:58: 22:0e:b6:6d:c5:1e:82:d1:0d:c6:08:9a:86:a1:29:5c:79:53:
73:f4:ed:15:04:26:d1:42:67:cf:62:35:ee:9a:31:74:34:5e: d3:ae:d6:c4:33:4b:d2:04:5a:d9:a0:c3:6d:26:ec:e8:35:06:
62:96:1e:a7:23:25:ec:d8:ff:56:40:34:ee:ba:f3:e1:81:5d: e7:88:12:03:7c:c5:83:26:b2:b5:32:a3:41:51:b4:94:b0:84:
56:ab:a1:2d:65:f5:20:57:0f:60:90:dc:ea:ab:d4:0d:96:5b: 0d:4a:05:52:02:29:41:5b:03:04:f0:c3:e5:24:e6:5a:ef:70:
b2:b5:39:5f:0b:6d:97:3a:b6:bf:d7:9c:36:60:97:3b:bc:3e: 45:45:58:25:2b:5e:be:7d:ca:73:02:2b:1d:4f:3c:4b:00:f4:
f4:8b:e2:df 69:5f:1a:6e
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIgvDCCH6SgAwIBAgIDBPWsMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl MIIgvDCCH6SgAwIBAgIDBlVGMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMDEyMTIwMDI4MjdaFw0yMTEyMTIwMDI4Mjda Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMTAxMTIxNjEzMjhaFw0yMjAxMTIxNjEzMjha
MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAxN4ieRE6+xspZvj2p6OKoyQXf7wVcfNTrxoXQ3aA9FOn AAOCAQ8AMIIBCgKCAQEA3MIXc4hL9lgJLyv8KXnJ+S0QKa21kY2qLWnF75LaMUtG
1WcWKLBb2T8Iqu/ieLzND79emfk2jCmYkJ0MAASgSFJbnwKwLkVbYr7KMWHZrjhS itn39+MIlexqwbnMcVPNYtywrnJ3fNnRk+Lx380yimm+f/r7rdRTaBuQSphmGQqT
dHvyjWni/c434CtZmCtcyv8TTSLfzqVifxjzEgpMsGfaMwSePtL32/nXQ2a7inzj qOjGTlgCSeM12EAQBHirq0o4Jczl1po0qQBMzPU6lBuupaaEiufM7+4J3g24w5yY
Kk1ES+M3JbpJXeXoHb0/tcRddcr2LT53GAOHPLuIOK8t5zfG9wxAYK9GljN3/bly WymGULqzTptzyzHdHqd/8sasKlYmtZzp/sWuGaBa1sILlgysdPcoQShFQx17QBn2
1YXXUqrdEMuyKWqliNXAME/Q6tVQCStmQR5/VUFC0p1XPrp5ivFlNEYKrObNNdgf afRFgE6rhLKhUqHi6skA733uR3n4uHT5mN9joiRuAK0inoMckXpEGfBOMd5p5bd6
aAejX6UIbehSHPj0ETZXTYpsWJG9rp3juq/wo4lZXwIDAQABo4IeBDCCHgAwCQYD awup2RXsSxutFDosfwDd0Yn6Rw3svGavy6RrMvjU+wIDAQABo4IeBDCCHgAwCQYD
VR0TBAIwADAdBgNVHQ4EFgQU9Ut4mKCjNuNvuDwZ4ve+cA74cHMwHwYDVR0jBBgw VR0TBAIwADAdBgNVHQ4EFgQUzfHIYtHspT3kGpFw8QLmbrwv4gUwHwYDVR0jBBgw
FoAUp6lecampZBuyA4zRY+P4odC1GmgwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG FoAU3G2NYt1UmMhgF8LTUbO/c1tckLkwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
CCsGAQUFBwMBMIIdjwYDVR0RBIIdhjCCHYKCEXdlYi1wbGF0Zm9ybS50ZXN0ghVv CCsGAQUFBwMBMIIdjwYDVR0RBIIdhjCCHYKCEXdlYi1wbGF0Zm9ybS50ZXN0ghVv
cDgud2ViLXBsYXRmb3JtLnRlc3SCFW9wNy53ZWItcGxhdGZvcm0udGVzdIIVb3A5 cDgud2ViLXBsYXRmb3JtLnRlc3SCFW9wNy53ZWItcGxhdGZvcm0udGVzdIIVb3A5
LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDQud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13 LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDQud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13
...@@ -231,10 +231,10 @@ NmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl ...@@ -231,10 +231,10 @@ NmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2 c3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2
MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54 MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54
bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJ bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJ
KoZIhvcNAQELBQADggEBAGlkrfZThPh+4m0KSv8/RNAwT6rbGIwaSSh2BBlhGzRL KoZIhvcNAQELBQADggEBADin7+tVMOhvv1Gp61KaZuw9GV30HYQXwPImPitmXXqp
2WPaluFzZybPsHHvDwro2xcAW0jMiW2lxUHF6l5vKk9eaPCTaTwybBV/9b2b+KuC RIbDutfwnueyswUMJe/ht5SMRBzSV0wwUZYpli6z4xz4nOZ9lhQ/Pz6mlksB3PLt
AWVCwtX1Jp4GK4RGdJm9RNIXOyh7YWGjVXyQbX6IbjzOc6yQooly7hcN6CEtnfew v/zjZJNJgb7J3d0bztpyRdEtypnN0X35F+HuEvTtdkHKb6VccgBKjXbFK7cYe87o
hi9TjHCEJTxvM/QSOX1oKCQxRKVmBSmOnfPfYt9b4DfZFUT8M/BjjpN0ENtPclws q3aadekdU5t1k20LLkk/v4Qfcb5JI6ss+KaiKJOCBGyOhSIOtm3FHoLRDcYImoah
t6sYWHP07RUEJtFCZ89iNe6aMXQ0XmKWHqcjJezY/1ZANO668+GBXVaroS1l9SBX KVx5U9Ou1sQzS9IEWtmgw20m7Og1BueIEgN8xYMmsrUyo0FRtJSwhA1KBVICKUFb
D2CQ3Oqr1A2WW7K1OV8LbZc6tr/XnDZglzu8PvSL4t8= AwTww+Uk5lrvcEVFWCUrXr59ynMCKx1PPEsA9GlfGm4=
-----END CERTIFICATE----- -----END CERTIFICATE-----
...@@ -655,6 +655,16 @@ def check_parsed(repo_root, path, f): ...@@ -655,6 +655,16 @@ def check_parsed(repo_root, path, f):
if incorrect_path("testdriver-vendor.js", src): if incorrect_path("testdriver-vendor.js", src):
errors.append(rules.TestdriverVendorPath.error(path)) errors.append(rules.TestdriverVendorPath.error(path))
script_path = None
try:
script_path = urlsplit(urljoin(source_file.url, src)).path
except ValueError:
# This happens if the contents of src isn't something that looks like a URL to Python
pass
if (script_path == "/common/reftest-wait.js" and
"reftest-wait" not in source_file.root.attrib.get("class", "").split()):
errors.append(rules.MissingReftestWait.error(path))
return errors return errors
class ASTCheck(with_metaclass(abc.ABCMeta)): class ASTCheck(with_metaclass(abc.ABCMeta)):
......
...@@ -197,6 +197,14 @@ class MultipleTestharness(Rule): ...@@ -197,6 +197,14 @@ class MultipleTestharness(Rule):
""" """
class MissingReftestWait(Rule):
name = "MISSING-REFTESTWAIT"
description = "Missing `class=reftest-wait`"
to_fix = """
ensure tests that include reftest-wait.js also use class=reftest-wait on the root element.
"""
class MissingTestharnessReport(Rule): class MissingTestharnessReport(Rule):
name = "MISSING-TESTHARNESSREPORT" name = "MISSING-TESTHARNESSREPORT"
description = "Missing `<script src='/resources/testharnessreport.js'>`" description = "Missing `<script src='/resources/testharnessreport.js'>`"
......
...@@ -230,6 +230,7 @@ class Manifest(object): ...@@ -230,6 +230,7 @@ class Manifest(object):
# 25 items was derived experimentally (2020-01) to be approximately the # 25 items was derived experimentally (2020-01) to be approximately the
# point at which it is quicker to create a Pool and parallelize update. # point at which it is quicker to create a Pool and parallelize update.
pool = None
if parallel and len(to_update) > 25 and cpu_count() > 1: if parallel and len(to_update) > 25 and cpu_count() > 1:
# On Python 3 on Windows, using >= MAXIMUM_WAIT_OBJECTS processes # On Python 3 on Windows, using >= MAXIMUM_WAIT_OBJECTS processes
# causes a crash in the multiprocessing module. Whilst this enum # causes a crash in the multiprocessing module. Whilst this enum
...@@ -262,6 +263,11 @@ class Manifest(object): ...@@ -262,6 +263,11 @@ class Manifest(object):
data[new_type][rel_path_parts] = manifest_items data[new_type][rel_path_parts] = manifest_items
data[new_type].hashes[rel_path_parts] = file_hash data[new_type].hashes[rel_path_parts] = file_hash
# Make sure to terminate the Pool, to avoid hangs on Python 3.
# https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool
if pool is not None:
pool.terminate()
if remaining_manifest_paths: if remaining_manifest_paths:
changed = True changed = True
for rel_path_parts in remaining_manifest_paths: for rel_path_parts in remaining_manifest_paths:
......
...@@ -167,27 +167,27 @@ def global_variant_url(url, suffix): ...@@ -167,27 +167,27 @@ def global_variant_url(url, suffix):
def _parse_html(f): def _parse_html(f):
# type: (BinaryIO) -> ElementTree.ElementTree # type: (BinaryIO) -> ElementTree.Element
doc = html5lib.parse(f, treebuilder="etree", useChardet=False) doc = html5lib.parse(f, treebuilder="etree", useChardet=False)
if MYPY: if MYPY:
return cast(ElementTree.ElementTree, doc) return cast(ElementTree.Element, doc)
return doc return doc
def _parse_xml(f): def _parse_xml(f):
# type: (BinaryIO) -> ElementTree.ElementTree # type: (BinaryIO) -> ElementTree.Element
try: try:
# raises ValueError with an unsupported encoding, # raises ValueError with an unsupported encoding,
# ParseError when there's an undefined entity # ParseError when there's an undefined entity
return ElementTree.parse(f) return ElementTree.parse(f).getroot()
except (ValueError, ElementTree.ParseError): except (ValueError, ElementTree.ParseError):
f.seek(0) f.seek(0)
return ElementTree.parse(f, XMLParser.XMLParser()) # type: ignore return ElementTree.parse(f, XMLParser.XMLParser()).getroot() # type: ignore
class SourceFile(object): class SourceFile(object):
parsers = {u"html":_parse_html, parsers = {u"html":_parse_html,
u"xhtml":_parse_xml, u"xhtml":_parse_xml,
u"svg":_parse_xml} # type: Dict[Text, Callable[[BinaryIO], ElementTree.ElementTree]] u"svg":_parse_xml} # type: Dict[Text, Callable[[BinaryIO], ElementTree.Element]]
root_dir_non_test = {u"common"} root_dir_non_test = {u"common"}
...@@ -447,7 +447,7 @@ class SourceFile(object): ...@@ -447,7 +447,7 @@ class SourceFile(object):
@cached_property @cached_property
def root(self): def root(self):
# type: () -> Optional[Union[ElementTree.Element, ElementTree.ElementTree]] # type: () -> Optional[ElementTree.Element]
"""Return an ElementTree Element for the root node of the file if it contains """Return an ElementTree Element for the root node of the file if it contains
markup, or None if it does not""" markup, or None if it does not"""
if not self.markup_type: if not self.markup_type:
...@@ -461,12 +461,7 @@ class SourceFile(object): ...@@ -461,12 +461,7 @@ class SourceFile(object):
except Exception: except Exception:
return None return None
if hasattr(tree, "getroot"): return tree
root = tree.getroot() # type: Union[ElementTree.Element, ElementTree.ElementTree]
else:
root = tree
return root
@cached_property @cached_property
def timeout_nodes(self): def timeout_nodes(self):
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# DO NOT EDIT MANUALLY. # DO NOT EDIT MANUALLY.
# tools/certs/web-platform.test.pem # tools/certs/web-platform.test.pem
WPT_FINGERPRINT = 'jLyENXJPaWkMd5jvkdeZNBCDxmlrsaejX6b9sUNA6Kc=' WPT_FINGERPRINT = 'OXb4O8pcDI8Nwx3KzqNuTbJ1Znf52VjEVWiYYCjHcIM='
# signed-exchange/resources/127.0.0.1.sxg.pem # signed-exchange/resources/127.0.0.1.sxg.pem
SXG_WPT_FINGERPRINT = '0Rt4mT6SJXojEMHTnKnlJ/hBKMBcI4kteBlhR1eTTdk=' SXG_WPT_FINGERPRINT = '0Rt4mT6SJXojEMHTnKnlJ/hBKMBcI4kteBlhR1eTTdk='
......
...@@ -98,7 +98,9 @@ class DirectoryHandler(object): ...@@ -98,7 +98,9 @@ class DirectoryHandler(object):
{"link": link, "name": ".."}) {"link": link, "name": ".."})
items = [] items = []
prev_item = None prev_item = None
for item in sorted(os.listdir(path)): # This ensures that .headers always sorts after the file it provides the headers for. E.g.,
# if we have x, x-y, and x.headers, the order will be x, x.headers, and then x-y.
for item in sorted(os.listdir(path), key=lambda x: (x[:-len(".headers")], x) if x.endswith(".headers") else (x, x)):
if prev_item and prev_item + ".headers" == item: if prev_item and prev_item + ".headers" == item:
items[-1][1] = item items[-1][1] = item
prev_item = None prev_item = None
......
...@@ -429,7 +429,7 @@ class Http2WebTestRequestHandler(BaseWebTestRequestHandler): ...@@ -429,7 +429,7 @@ class Http2WebTestRequestHandler(BaseWebTestRequestHandler):
return False return False
method = extract_method_header(frame.headers) method = extract_method_header(frame.headers)
if method != "CONNECT": if method != b"CONNECT":
return False return False
protocol = "" protocol = ""
...@@ -437,7 +437,7 @@ class Http2WebTestRequestHandler(BaseWebTestRequestHandler): ...@@ -437,7 +437,7 @@ class Http2WebTestRequestHandler(BaseWebTestRequestHandler):
if key in (b':protocol', u':protocol'): if key in (b':protocol', u':protocol'):
protocol = isomorphic_encode(value) protocol = isomorphic_encode(value)
break break
if protocol != "websocket": if protocol != b"websocket":
raise ProtocolError("Invalid protocol %s with CONNECT METHOD" % (protocol,)) raise ProtocolError("Invalid protocol %s with CONNECT METHOD" % (protocol,))
return True return True
......
...@@ -9,7 +9,12 @@ import time ...@@ -9,7 +9,12 @@ import time
# this number too large will result in false positives, when it takes more than # this number too large will result in false positives, when it takes more than
# 2 seconds to transmit the message anyway. This number was arrived at by # 2 seconds to transmit the message anyway. This number was arrived at by
# trial-and-error. # trial-and-error.
MESSAGE_SIZE = 16 * 1024 * 1024 MESSAGE_SIZE = 1024 * 1024
# With Windows 10 and Python 3, the OS will buffer an entire message in memory
# and return from send() immediately, even if it is very large. To work around
# this problem, send multiple messages.
MESSAGE_COUNT = 16
def web_socket_do_extra_handshake(request): def web_socket_do_extra_handshake(request):
...@@ -26,8 +31,10 @@ def web_socket_transfer_data(request): ...@@ -26,8 +31,10 @@ def web_socket_transfer_data(request):
# 3 is complete. time.time() can go backwards. # 3 is complete. time.time() can go backwards.
start_time = time.time() start_time = time.time()
# The large message that will be blocked by backpressure. # The large messages that will be blocked by backpressure.
request.ws_stream.send_message(b' ' * MESSAGE_SIZE, binary=True) for i in range(MESSAGE_COUNT):
request.ws_stream.send_message(b' ' * MESSAGE_SIZE, binary=True)
# Report the time taken to send the large message. # Report the time taken to send the large message.
request.ws_stream.send_message(six.text_type(time.time() - start_time), binary=False) request.ws_stream.send_message(six.text_type(time.time() - start_time),
binary=False)
...@@ -20,7 +20,7 @@ if __name__ == "__main__": ...@@ -20,7 +20,7 @@ if __name__ == "__main__":
sys.exit(1) sys.exit(1)
else: else:
raise raise
elif (args.py3 or py3only) and sys.version_info.major < 3: elif (not args.py2) and sys.version_info.major < 3:
from subprocess import call from subprocess import call
try: try:
sys.exit(call(['python3'] + sys.argv)) sys.exit(call(['python3'] + sys.argv))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment