commit 758c4b8fadef62b18bc6e47c4a887129d267b06c
parent bd2fa00c5373a1e8bce6f230ac88024680648829
Author: marcel2012 <marcel2012@users.noreply.github.com>
Date: Thu, 9 Oct 2025 16:40:07 +0000
Bug 1991279 - [toolkit] Fix missing domain name in title in Certificate viewer if certificate does not contain Common name. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D267502
Diffstat:
2 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/toolkit/components/certviewer/content/certviewer.mjs b/toolkit/components/certviewer/content/certviewer.mjs
@@ -458,13 +458,13 @@ const buildChain = async chain => {
if (certs.length === 0) {
return Promise.reject();
}
+ let adjustedCerts = certs.map(cert => adjustCertInformation(cert));
let certTitle = document.querySelector("#certTitle");
- let firstCertCommonName = certs[0].subject.cn;
+ let firstCertLabel = adjustedCerts[0].tabName;
document.l10n.setAttributes(certTitle, "certificate-viewer-tab-title", {
- firstCertName: firstCertCommonName,
+ firstCertName: firstCertLabel,
});
- let adjustedCerts = certs.map(cert => adjustCertInformation(cert));
return render(adjustedCerts, false);
})
.catch(() => {
diff --git a/toolkit/components/certviewer/tests/browser/browser_handleMultipleCertsURL.js b/toolkit/components/certviewer/tests/browser/browser_handleMultipleCertsURL.js
@@ -5,6 +5,8 @@ const multipleCerts2 =
"about:certificate?cert=MIIIIDCCBwigAwIBAgIQGk0sGNQUuaOL9Rii2XQ4yjANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMSUwIwYDVQQDExxHb29nbGUgSW50ZXJuZXQgQXV0aG9yaXR5IEczMB4XDTE5MDYxODA4MjE1OFoXDTE5MDkxMDA4MTUwMFowZjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEzARBgNVBAoMCkdvb2dsZSBMTEMxFTATBgNVBAMMDCouZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMRScn8kk6qy3LHVktWZWxm%2FMq4kowlEdxQH40wijThZ%2B%2F5Jrqh6UlWnWuiulNorHH2DEW4OkSKreFoYze7w8O6jggWlMIIFoTATBgNVHSUEDDAKBggrBgEFBQcDATAOBgNVHQ8BAf8EBAMCB4AwggRqBgNVHREEggRhMIIEXYIMKi5nb29nbGUuY29tgg0qLmFuZHJvaWQuY29tghYqLmFwcGVuZ2luZS5nb29nbGUuY29tghIqLmNsb3VkLmdvb2dsZS5jb22CGCouY3Jvd2Rzb3VyY2UuZ29vZ2xlLmNvbYIGKi5nLmNvgg4qLmdjcC5ndnQyLmNvbYIRKi5nY3BjZG4uZ3Z0MS5jb22CCiouZ2dwaHQuY26CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZWNuYXBwcy5jboIUKi5nb29nbGVjb21tZXJjZS5jb22CESouZ29vZ2xldmlkZW8uY29tggwqLmdzdGF0aWMuY26CDSouZ3N0YXRpYy5jb22CEiouZ3N0YXRpY2NuYXBwcy5jboIKKi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIUKi5tZXRyaWMuZ3N0YXRpYy5jb22CDCoudXJjaGluLmNvbYIQKi51cmwuZ29vZ2xlLmNvbYIWKi55b3V0dWJlLW5vY29va2llLmNvbYINKi55b3V0dWJlLmNvbYIWKi55b3V0dWJlZWR1Y2F0aW9uLmNvbYIRKi55b3V0dWJla2lkcy5jb22CByoueXQuYmWCCyoueXRpbWcuY29tghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYILYW5kcm9pZC5jb22CG2RldmVsb3Blci5hbmRyb2lkLmdvb2dsZS5jboIcZGV2ZWxvcGVycy5hbmRyb2lkLmdvb2dsZS5jboIEZy5jb4IIZ2dwaHQuY26CBmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CD2dvb2dsZWNuYXBwcy5jboISZ29vZ2xlY29tbWVyY2UuY29tghhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY26CCnVyY2hpbi5jb22CCnd3dy5nb28uZ2yCCHlvdXR1LmJlggt5b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIFeXQuYmUwaAYIKwYBBQUHAQEEXDBaMC0GCCsGAQUFBzAChiFodHRwOi8vcGtpLmdvb2cvZ3NyMi9HVFNHSUFHMy5jcnQwKQYIKwYBBQUHMAGGHWh0dHA6Ly9vY3NwLnBraS5nb29nL0dUU0dJQUczMB0GA1UdDgQWBBT8E5DiGEc7xHswBMF5K5EmFzx6fDAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFHfCuFCaZ3Z2sS3ChtCDoH6mfrpLMCEGA1UdIAQaMBgwDAYKKwYBBAHWeQIFAzAIBgZngQwBAgIwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC5wa2kuZ29vZy9HVFNHSUFHMy5jcmwwDQYJKoZIhvcNAQELBQADggEBAGrWCimTdP8%2B6qCqNh1Xza9Wlm%2FGDVb%2BKp0PHUZaNDMThFQQqGn2XVi7ZkhqsxTtMw88Nrl97Bi1OsnNPlabhDwxtRyWkNkLdpFxebRz73CsjyoB3cboH%2FZ8sU9LLwXe%2FIJgMkvT7fznKtKSweWV%2BmAYG%2F3KzaIyLrowYpyOsWaYytPJK7ypuk6yOPxuQcQnelotWpuHUBR3mo3FIW56BPCy20KwqwvWoZe27BNxO%2F11Ym%2FPnric2fWXwgmHdkvVqqssUMFs%2BmG2tS%2FpqnR5yZdQL60xOgDq70mVWYgQT4yUTm7i8qvugvNnuSIjjsbelHgbC8f5%2Fx%2Bo2pEyw%2FDYyKw%3D&cert=MIIGcTCCBVmgAwIBAgIQCHx760AsIFydVjey10GPXTANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMS8wLQYDVQQDEyZEaWdpQ2VydCBTSEEyIEhpZ2ggQXNzdXJhbmNlIFNlcnZlciBDQTAeFw0xOTA1MjQwMDAwMDBaFw0yMDA1MjMxMjAwMDBaMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRYwFAYDVQQKEw1Ud2l0dGVyLCBJbmMuMQ0wCwYDVQQLEwRhdGxhMRYwFAYDVQQDDA0qLnR3aXR0ZXIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4IL8Mo0RIfgZmVhwMiaq30EfjJzcB1dalwHZb2K6P6LtmEpLs%2Bnqm1FCdfZgKO3u4CAbd5Oc2EaZB5KjhOcEo6GjhGKcLS430y%2FXhqWo6dDWWYal1Ulu7CCvNLir0Q5aQ2m8EJuafK%2BqwxSBCGXiWeT4HXqabyU34i70bQbgBSjvffaHr27HVrD4hxq0DspKTIpf0fc4%2B%2Fs%2FTTbxEmX7FbVgmu3Y3rTpeNXegL2Lp5nrGp1drWpcM6g8PlrlhcWujdD2Sb0BpIO0dFNCmvOwDspKt8Ih7t0Sw3Q7u0EGEGJLt%2BgY7nrBoRm1G0DSBd0Ih4coHzfgoGBPy11atynvLwIDAQABo4IC%2FDCCAvgwHwYDVR0jBBgwFoAUUWj%2FkK8CB3U8zNllZGKiErhZcjswHQYDVR0OBBYEFNFZBVr1ptzC%2FiUkvSIQ8QAGfB5jMCUGA1UdEQQeMByCDSoudHdpdHRlci5jb22CC3R3aXR0ZXIuY29tMA4GA1UdDwEB%2FwQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdQYDVR0fBG4wbDA0oDKgMIYuaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTItaGEtc2VydmVyLWc2LmNybDA0oDKgMIYuaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL3NoYTItaGEtc2VydmVyLWc2LmNybDBMBgNVHSAERTBDMDcGCWCGSAGG%2FWwBATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAECAjCBgwYIKwYBBQUHAQEEdzB1MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wTQYIKwYBBQUHMAKGQWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNIQTJIaWdoQXNzdXJhbmNlU2VydmVyQ0EuY3J0MAwGA1UdEwEB%2FwQCMAAwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgDuS723dc5guuFCaR%2Br4Z5mow9%2BX7By2IMAxHuJeqj9ywAAAWrrCDXmAAAEAwBHMEUCIQCSwzRMoifj1DjYLJuMOH%2BZ6coX83bWIgWgWynLUED87wIgFKdipP9ycAE8S9apXJxKQyp0RoA%2Ftca5%2BWHQE5VlF68AdwCHdb%2FnWXz4jEOZX73zbv9WjUdWNv9KtWDBtOr%2FXqCDDwAAAWrrCDakAAAEAwBIMEYCIQCcmFOfp58BDMFZZS%2FRVl2uiY94RcTozBrcmtkpoWhgkgIhAN%2BX3ODViV4HnN2ZpZ383mFaEHIjKACRdWTRL%2BcYA43lMA0GCSqGSIb3DQEBCwUAA4IBAQB8LQLmUzevGtdw%2FXVL8aFrotloF3zsUPb2Q7CONLzlMGrmfv%2BNKDXN9xqPLLzmX4MddOjfpbVcDX1mJkuvuYNhh5AQrsaxcfEgfMcqPOdELA1mHPfk8H5a8Tvno1nF9wQWqkCQjLedjKReivmDOGfs1%2Fl%2FDnrprc0v4f28cWvN7YkJsdqfEGLbJ6SKsAxNbtNn%2Ffi6LxnemjLbcTrZYps11Ex55PtDNc200ejqpbpzHolgAew4KUzsyElaYSvDwkLMdmfwYSI9wgcPmrPBfZ0N12TAfmJJbE%2FkZc0jIOi92A%2FVgZLKvQrxadnBqPzAR%2F2SrZMT5joWa5sHpwl9fg5Z";
const multipleCertsWithoutCommonName =
"about:certificate?cert=MIIDZjCCAu2gAwIBAgISBs352bcilvlGU69E2Cai5rOYMAoGCCqGSM49BAMDMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJFNTAeFw0yNTA4MDYxMDA4MzFaFw0yNTExMDQxMDA4MzBaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQg5r2Oigxi26r2gvut9Zjvip6uCO3JWzKRBhTkrjSld%2FsRDuA6tIk39y0BjJdoO824XYl4FRwen3UaO2b8eN0Ro4ICEzCCAg8wDgYDVR0PAQH%2FBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB%2FwQCMAAwHwYDVR0jBBgwFoAUnytfzzwhT50Et%2B0rLMTGcIvS1w0wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRwOi8vZTUuaS5sZW5jci5vcmcvMDoGA1UdEQEB%2FwQwMC6CLGV6ZHJwLWZvcm1zLmV6ZHJwLmV6ZC0wMi5jbG91ZC5jdWkucGcuZ2RhLnBsMBMGA1UdIAQMMAowCAYGZ4EMAQIBMC0GA1UdHwQmMCQwIqAgoB6GHGh0dHA6Ly9lNS5jLmxlbmNyLm9yZy8yNS5jcmwwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQAN4fIwK9MNwUBiEgnqVS78R3R8sdfpMO8OQh60fk6qNAAAAZh%2FECipAAAEAwBGMEQCIC1HAgm0ZEg3p99Sj%2FL0xxvVWkNNmLBC2UZR5cOtUZAfAiAOtvGW2QG5GtDq1b%2BDQC7V79rrDkFuH29MLfWd%2F%2B7nNwB2AN3cyjSV1%2BEWBeeVMvrHn%2Fg9HFDf2wA6FBJ2Ciysu8gqAAABmH8QKOsAAAQDAEcwRQIgGIbmVrZ1MxuQ%2FIF%2B2TCZq%2BHSn8viwaHzludqVAdeqNwCIQC1oK0yeUnw6njmbYIw5ctdJ0HZrP3Ul9QmPlEUkVHcwTAKBggqhkjOPQQDAwNnADBkAjBVlr77bImxyPoGcogIZRmYgXgjySsLc5gWe7Y9ri%2BnEyGaDryDcolGVrS13q4Q3S8CMHWceEmJPrTTIbLlWCd%2FuklGxMIjMo9ZtiRnft%2FGkgD2ct6M4QxuQEj%2B5IYcAx9xww%3D%3D&cert=MIICtDCCAjugAwIBAgIQGG511O6woF39Lagghl0eMTAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yNDAzMTMwMDAwMDBaFw0yNzAzMTIyMzU5NTlaMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJFNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABA0LOoprYY6279xfWOfGQkVUq2P2ZmFICi5ZdbSBAjdQtz8WedyY7KEol3IgHCzP1XxSIE5UeFuEFGvAkK6F7MBRQTxah38GTdT%2BYNH6bC3hfZUQiKIIVA%2BZGkzm6gqs2KOB%2BDCB9TAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB%2FwQIMAYBAf8CAQAwHQYDVR0OBBYEFJ8rX888IU%2BdBLftKyzExnCL0tcNMB8GA1UdIwQYMBaAFHxClq7eS0g7%2BpL4nozPbYupcjeVMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gyLmkubGVuY3Iub3JnLzATBgNVHSAEDDAKMAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDIuYy5sZW5jci5vcmcvMAoGCCqGSM49BAMDA2cAMGQCMBttLkVBHEU%2B2V80GHRnE3m6qym1thBOgydKi0VOx3vP9EAwHWGl5hxtpJAJkm5GSwIwRikYhDR6vPve2BvYGacE9ct%2B522E2dqO6s42MLmigEws5mASS6l2quhtlUfacgkM&cert=MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S%2BHUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW%2B1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppbd9%2Fw%2BkHsOdx1ymgHDB%2Fqo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH%2FBAUwAwEB%2FzAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70%2FaTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi%2FV3bNTIZargCyzuFJ0nN6T5U6VR5CmD1%2FiQMVtCnwr1%2Fq4AaOeMSQ%2B2b1tbFfLn";
+const multipleSelfSignedCertsWithoutCommonNameAndSAN =
+ "about:certificate?cert=MIIDMzCCAhugAwIBAgIUNSk%2FychSLML28f8Qb2mPZylVhlowDQYJKoZIhvcNAQELBQAwKTELMAkGA1UEBhMCVVMxGjAYBgNVBAoMEVRlc3QgT3JnYW5pemF0aW9uMB4XDTI1MTAwNzIzNDg0OVoXDTI2MTAwNzIzNDg0OVowKTELMAkGA1UEBhMCVVMxGjAYBgNVBAoMEVRlc3QgT3JnYW5pemF0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuDsd3NPEmNciDoKRFEH4SzDxKoPHOdDp76ORTO%2BDzMAsGnL%2FO9xTb26GNtwmTD6H5dKUEx06ob6lMWOjpn1WbyG0alxsJFQdWI0Dn13c7qO%2BDIBJXp3%2Bz3KjGXqmjfaihK354m4EDNIrhrfnUlcNZRHRS75ArFjNMs9EWmZa7p3xbYxy%2F1ueUNio%2Brrvqt4P8yghiXAQAwMG5Xp66zI0MG5UkgrMRTm9SeUH4fU0uiKo8xkTWFfKksmjKH%2BqQMVz9Xv7OkQxu7IdqLVwIEmzrk845XL3FzNHBjzkE0x45Xt%2FBY1fCjvvqXhB8oL1WWuvbco%2BKGSDTWo%2FC5zwmT3I9wIDAQABo1MwUTAdBgNVHQ4EFgQULsHvm3bdb4SepVHRjzJg1T0JxtswHwYDVR0jBBgwFoAULsHvm3bdb4SepVHRjzJg1T0JxtswDwYDVR0TAQH%2FBAUwAwEB%2FzANBgkqhkiG9w0BAQsFAAOCAQEAMF6C7Ka86mFEIiOZ5BZpMCqmjQ0bp4cz4y%2BG6HY9sjINvBwCKFBmgd95nKXGjWU2VE7hCkqsIA69%2FGPLZN9XT1d9cGswwbSnuzNBHLsRj0INUoQIL%2BJUxIUNidgA5YhSBT9trfgLiZOSy7SegAq84Q33jXMnjpy1ElBEweIpOcKH%2FZ2xPe76txVBXv8Ch%2BvuzCbs%2FeF7EaHPutcoU4ZjVULiG10H%2F%2BRnENbGvs4P4OipPkGTtk1wQVBqd%2Fw2cWKdo%2FxnuN4NUxPMgfBiGzTBrEtqFVwgkcaZ8vhXPXvjsseB26e3v1riZ5N%2B5pfbV%2Bc8u2jW9I21mHY%2FV8c4gfNoow%3D%3D&cert=MIIEHTCCAoWgAwIBAgIUL%2BnL3QzdkLY7nytwXccNijFOy8MwDQYJKoZIhvcNAQEMBQAwHjELMAkGA1UEBhMCR0IxDzANBgNVBAcMBkxvbmRvbjAeFw0yNTEwMDcyMzQ4MjFaFw0yNjEwMDcyMzQ4MjFaMB4xCzAJBgNVBAYTAkdCMQ8wDQYDVQQHDAZMb25kb24wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCQVNfSxiCWYNVPIVjdhKA9J%2BUNugM7R97bcBc1IDS6lGtWZlUruIcAm%2BRUpJZOwVlg7aVunRYHhNLoxQjWY5AtD6N7jBZBmohjDDRGleu4qV0AkVi7K7liUDvjMbEMkUNrxfC17DqE1%2BpcaPf4Ftv1mL1ljC71vlZuOrsFnXYTjOwVFVQlmOEr5vb8zGHiIhsTluxvmVDTvWK2nN0dbYldI8FO%2BWauTLSYvyQd5mhZk0v05zr%2FZSlmqFkzQ72BjrF9h4pa2npPcGkWirX7yDfe0zyC2LnnsuBcxEkG%2FQ%2F95IM5qG3yxmqESzE%2Fv75d5Fef8JH7tBP%2BBjsi6YzSnRsuJUUOG%2FkpBk%2FfoKppGsMA2KRdQ1gAzqfj1xXH3TB61qmpVeZVqRN375FdK6C3LhUAAOPGdtbxTR9YbvDesfca3hyD6IXLqbiYtzdoSzOEW7zZf%2FBJmjVxsjWQpeaxQjETsdAqy7ERJj66%2B77iT7nHRg%2BtsFX9U%2BGtapwW7fjdE9cCAwEAAaNTMFEwHQYDVR0OBBYEFLdUIUCD70YoioWKerMTloEx2HABMB8GA1UdIwQYMBaAFLdUIUCD70YoioWKerMTloEx2HABMA8GA1UdEwEB%2FwQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggGBABXg8Fdiwhmmx1AAx%2BHkYdhug9lwKN%2BF9%2B1eun78j3r5La%2FUiGNn9TOF9NGTLVWkN34vENtNFK7qkG916n%2BR5bg59U%2FTU1NMhRJTuUvKFpYJTrnb42qxhaHC6aKQj3oe2jWao1BbZtQhQZ5tt6Nzplt%2F0DMT2lkyG0vjzvU5h%2BXhSghb23J5%2Fqu6zLEAv9jWn2GHD6exCvlg%2BjTEugTi8PNWLi0siydxZSCsfguSiG%2F71wH4rKwMejhZ53on9YB64GKUUgssRSQGbvVnYtmuPNUGZZXirGQWdE%2F%2FxtHunTU%2FqnQIEdHnAXW%2B%2FFiA2ihuHxTJ62vn4kOsYF7817mvREnqamBeK16LbLyOVwtPqVMvIaZbJ9a92ffLIoBLPEAiiEIf7%2FfCpJR25cwiNwiT5aex%2FILoQxRAlY%2BmsXVGn8giUQICeJPE8gQ0hMF5Xh4eU1AIVvdPDmZfTnAzOKslk0r3woLyNIlaLmKfHuQpetEIJgiR1n0NlJCeLN8rETrSYg%3D%3D";
// both invalids
const errorCerts1 = "about:certificate?cert=aa&cert=bb&cert=abc";
@@ -102,7 +104,7 @@ async function checkSubjectName(inputPage, subjectsNameInfo) {
);
}
-async function checkTabsName(inputPage, tabsNames) {
+async function checkTabsName(inputPage, pageTitle, tabsNames) {
await BrowserTestUtils.withNewTab(
{
gBrowser,
@@ -111,8 +113,8 @@ async function checkTabsName(inputPage, tabsNames) {
async function (browser) {
await SpecialPowers.spawn(
browser,
- [tabsNames],
- async function (expectedTabsNames) {
+ [pageTitle, tabsNames],
+ async function (expectedPageTitle, expectedTabsNames) {
let certificateSection = await ContentTaskUtils.waitForCondition(
() => {
return content.document.querySelector("certificate-section");
@@ -120,6 +122,15 @@ async function checkTabsName(inputPage, tabsNames) {
"Certificate section found"
);
+ let certPageTitle = await ContentTaskUtils.waitForCondition(() => {
+ return content.document.querySelector("#certTitle");
+ }, "Page title found");
+ Assert.equal(
+ certPageTitle.innerText,
+ expectedPageTitle,
+ `Page title should be ${expectedPageTitle}`
+ );
+
let tabsSection =
certificateSection.shadowRoot.querySelector(".certificate-tabs");
Assert.ok(tabsSection, "Tabs section found");
@@ -194,6 +205,7 @@ add_task(async function runTests() {
let inputs = [
{
url: multipleCerts1,
+ pageTitle: "Certificate for www.mozilla.org",
tabsNames: ["www.mozilla.org", "github.com"],
errorPageExpected: false,
subjectNameInfo: [
@@ -228,6 +240,7 @@ add_task(async function runTests() {
},
{
url: multipleCerts2,
+ pageTitle: "Certificate for *.google.com",
tabsNames: ["*.google.com", "*.twitter.com"],
errorPageExpected: false,
subjectNameInfo: [
@@ -258,6 +271,7 @@ add_task(async function runTests() {
},
{
url: multipleCertsWithoutCommonName,
+ pageTitle: "Certificate for ezdrp-forms.ezdrp.ezd-02.cloud.cui.pg.gda.pl",
tabsNames: [
"ezdrp-forms.ezdrp.ezd-02.cloud.cui.pg.gda.pl",
"E5",
@@ -295,6 +309,30 @@ add_task(async function runTests() {
],
},
{
+ url: multipleSelfSignedCertsWithoutCommonNameAndSAN,
+ pageTitle: "Certificate for Test Organization",
+ tabsNames: ["Test Organization", "London"],
+ errorPageExpected: false,
+ subjectNameInfo: [
+ {
+ tabName: "Test Organization",
+ sectionTitle: "Subject Name",
+ sectionItems: [
+ { label: "Country", info: "US" },
+ { label: "Organization", info: "Test Organization" },
+ ],
+ },
+ {
+ tabName: "London",
+ sectionTitle: "Subject Name",
+ sectionItems: [
+ { label: "Country", info: "GB" },
+ { label: "Locality", info: "London" },
+ ],
+ },
+ ],
+ },
+ {
url: errorCerts1,
tabsNames: [],
errorPageExpected: true,
@@ -309,7 +347,7 @@ add_task(async function runTests() {
for (let input of inputs) {
await checkDOM(input.url, input.errorPageExpected);
if (!input.errorPageExpected) {
- await checkTabsName(input.url, input.tabsNames);
+ await checkTabsName(input.url, input.pageTitle, input.tabsNames);
await checkSubjectName(input.url, input.subjectNameInfo);
}
}