Bug 1483626 - Checks if subjectAltNames has elements that are not empty string, and if it has them, they will be remove, preventing incomplete r=johannh
authorCarolina Jimenez Gomez <carolina.jimenez.g@gmail.com>
Thu, 14 Mar 2019 15:45:55 +0000
changeset 524948 a09b3ceb8f7258c0a7d0d2efa95b505d66460f3c
parent 524947 182f8f4a800c0c96c234f8c7c312d3c9da2514b3
child 524949 a5beba8cc1907dd96ad78dca466b656620768af2
push id2032
push userffxbld-merge
push dateMon, 13 May 2019 09:36:57 +0000
treeherdermozilla-release@455c1065dcbe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjohannh
bugs1483626
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1483626 - Checks if subjectAltNames has elements that are not empty string, and if it has them, they will be remove, preventing incomplete r=johannh messages to show to the user. r=johannh Differential Revision: https://phabricator.services.mozilla.com/D21796
browser/actors/NetErrorChild.jsm
browser/base/content/test/about/browser.ini
browser/base/content/test/about/browser_aboutCertError_noSubjectAltName.js
build/pgo/certs/cert9.db
build/pgo/certs/key4.db
build/pgo/certs/noSubjectAltName.certspec
build/pgo/server-locations.txt
--- a/browser/actors/NetErrorChild.jsm
+++ b/browser/actors/NetErrorChild.jsm
@@ -179,16 +179,20 @@ class NetErrorChild extends ActorChild {
       }
     }
 
     technicalInfo.appendChild(doc.createTextNode(msg1));
 
     if (input.data.isDomainMismatch) {
       let subjectAltNames = input.data.certSubjectAltNames.split(",");
       let numSubjectAltNames = subjectAltNames.length;
+
+      subjectAltNames = subjectAltNames.filter(name => name.length > 0);
+      numSubjectAltNames = subjectAltNames.length;
+
       let msgPrefix = "";
       if (numSubjectAltNames != 0) {
         if (numSubjectAltNames == 1) {
           if (newErrorPagesEnabled) {
             technicalInfo.textContent = "";
             let brandName = gBrandBundle.GetStringFromName("brandShortName");
             msgPrefix = gPipNSSBundle.formatStringFromName("certErrorMismatchSinglePrefix3", [brandName, hostString], 2) + " ";
             msgPrefix += gPipNSSBundle.GetStringFromName("certErrorMismatchSinglePrefix");
--- a/browser/base/content/test/about/browser.ini
+++ b/browser/base/content/test/about/browser.ini
@@ -8,16 +8,17 @@ support-files =
   dummy_page.html
 prefs =
   browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar=false
 
 [browser_aboutCertError.js]
 [browser_aboutCertError_clockSkew.js]
 [browser_aboutCertError_exception.js]
 [browser_aboutCertError_mitm.js]
+[browser_aboutCertError_noSubjectAltName.js]
 [browser_aboutCertError_telemetry.js]
 [browser_aboutHome_search_POST.js]
 [browser_aboutHome_search_composing.js]
 [browser_aboutHome_search_searchbar.js]
 [browser_aboutHome_search_suggestion.js]
 skip-if = os == "mac" || (os == "linux" && (!debug || bits == 64)) || (os == 'win' && os_version == '10.0' && bits == 64 && !debug) # Bug 1399648, bug 1402502
 [browser_aboutHome_search_telemetry.js]
 [browser_aboutNetError.js]
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/about/browser_aboutCertError_noSubjectAltName.js
@@ -0,0 +1,51 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const UNKNOWN_ISSUER = "https://no-subject-alt-name.example.com:443";
+
+const checkAdvancedAndGetTechnicalInfoText = async () => {
+  let doc = content.document;
+
+  let advancedButton = doc.getElementById("advancedButton");
+  ok(advancedButton, "advancedButton found");
+  is(advancedButton.hasAttribute("disabled"), false, "advancedButton should be clickable");
+  advancedButton.click();
+
+  let badCertAdvancedPanel = doc.getElementById("badCertAdvancedPanel");
+  ok(badCertAdvancedPanel, "badCertAdvancedPanel found");
+
+  let badCertTechnicalInfo = doc.getElementById("badCertTechnicalInfo");
+  ok(badCertTechnicalInfo, "badCertTechnicalInfo found");
+
+  let errorCode = doc.getElementById("errorCode").innerHTML;
+  is(errorCode, "SSL_ERROR_BAD_CERT_DOMAIN");
+
+  let viewCertificate = doc.getElementById("viewCertificate");
+  ok(viewCertificate, "viewCertificate found");
+
+  return badCertTechnicalInfo.innerHTML;
+};
+
+const checkCorrectMessages = (message) => {
+  let isCorrectMessage =
+    message.includes("Websites prove their identity via certificates."
+      + " Nightly does not trust this site because it uses a certificate that is"
+      + " not valid for no-subject-alt-name.example.com");
+  is(isCorrectMessage, true, "That message should appear");
+  let isWrongMessage =
+    message.includes("The certificate is only valid for ");
+  is(isWrongMessage, false, "That message shouldn't appear");
+};
+
+add_task(async function checkUntrustedCertError() {
+  info(`Loading ${UNKNOWN_ISSUER} which does not have a subject specified in the certificate`);
+  let tab = await openErrorPage(UNKNOWN_ISSUER);
+  let browser = tab.linkedBrowser;
+  info("Clicking the exceptionDialogButton in advanced panel");
+  let badCertTechnicalInfoText =
+    await ContentTask.spawn(browser, null, checkAdvancedAndGetTechnicalInfoText);
+  checkCorrectMessages(badCertTechnicalInfoText, browser);
+  BrowserTestUtils.removeTab(gBrowser.selectedTab);
+});
index 46f4626143abb7d3f0d4d5d2cfad72cfee067c20..fe1d307533a9a85b905ff3d49acee61e65122d7d
GIT binary patch
literal 229376
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
z00000000000000000000000000000000000000000000000000000000000000000
z000000O0=u8G<@~2`<V;{MTCix10E{l_tR+&*f2g3~Dfg#bU4$`cP<=;!F#5f;FC=
z!C>*|oD@2ZLE+KO#aU)*1S>p+iDt0SsT?+&XDZGiDiHMX;-9)V5l=J5=8j8Ga3MK+
zARbgYhi4?tF~pY7Vuz*2CDExoA0}@QC53Jv&eWG9Xya28*i?$1c#5tvfrw9MC9~L>
ztQaaqM?6_ui{OaoCQ_VS$uV>m4ZZOgylgFTuBH;f7%jx(q;q+6nud6)IyM!poJ;3q
z&^c=2sjAup1W(ImQBuBkNIy24rXtQ(#un5*8|^P8ajqh^c3e6$p36vJ(P;|e$@18e
zQrOf)29M6=$%&`RY7lI(btZkY#xmkOX&r)7+Zt0?G;x1QiSs4(2xL4XC56F4%Q3TK
zXbi4+UV?ZI2~~oX9Gy$0q|zxo9)+4rl1Fz2oBTYS;FjQ^pjuEYNEQqfbQh@cU-29H
zTlus3x%_B;Z@wv?kbft?PT<0q&9Bd2Be*X(Dp(~b7o-Y81={>~{7d|u{000`{5ZZJ
z-zq;Z|6%_0uHMA~00000000000000000000000000000000000000000000000000
z000000000000000000000000000000000000000000000|Ci_zT=03hJ9~|uVflP#
zwZNfo;*CVtmFw(mu#BmJ3r^`ODK4L$e4$!-?Tp(!L!{1FV;SUxg}e6OCwzKSpof22
zUSfHrKq<DHBmsxF>MYk1%eCmNQgbZVth2JFST3=%H8sI<jXTRV!g38e%Qe7q^*hVe
z!*X>y%hkbhwL8nz!g4h`%hkYg)jP{o!*W$S%T>X0l{@PzB`jC5v$6_Uu6$>?a#*fx
dXSp(1u5@R)Qdq8JXSoC{S3-y2BG*yw{{ynUeRu!>
index 6f96def91f9228b86ca8f1e8b98f798852d3b1a3..c40fb77c5bfb3176f51dac2cbcd68045f4d1da49
GIT binary patch
literal 294912
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
zBuawev#YE*+BE88w4^7B{l}{K^z6&b>v?Yn-0mGsu_#VejwHt<*OuohUk;4#^*mka
z@r|kT)bsNPsWP&jJ^X^y_&V<(qhm##(eaIbpHpz=z-;;s#SWJP)IaLTj^8;x>drgc
zK=iKQs9|8?gF))%xy6-pck?|w9!;_l-`G0v_@Ca{iHInB{<}vF00000`2PW#%`ejU
zw?y$P@pGHs0000000000000000000000000000000000000000000000000000000
z0000000000000000000000000000000000000000004mhhf$G|5lgDNbC7P0Abr+I
zC`rkvB_)Y@Xf~&k#?KSQ|A=4S{00C300000000000000000000000000000000000
z000000000000000000000000000000000000000000000000000000000000{0~7!
zN<>Whb3j5$N<>W)-$_Ior%M!fCr&qR;{S9u000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z0QkRL5E<5;80jr1h7_S7-A_i!!e@>43k(QG1xNC0qk}^+9vC-ND4Jg@EYvF?7!w*P
z$AM(~IVTMZgGoRX#@83cZ;cKK#rS*52_X?br_i!+nFj}WV0_X1dSMuMv^&39U?|29
z6NL)J1o)Fmk~&Z$MgEwXbQ_nJZzww0|L22P2Zx1(ZqEN74~BIoJ8Vdd#6Fj!MN<Eq
zoq~mAzttZ%s8~p}wdB~4+kf7mWT7(&2=fm`Vf^_IV9*hAf=Gd1Id}Y#Q<`7*0KYrh
zHO!MgbTcyl=E6Kku3wS2TcO>;em*3>uD>V7AB_(F`4cH46@OJldUMHt{h0h>n~(A{
zXhcA8s8^);=4xd9QGRH3bhz}-)k?de<fM=i6x0&Q`pL_5#MH!WJZ@g7U|&=y%3m||
z*Ggp2hfscjzGxY@06&t=&7kt%*mN}UGeo5E9YpaR@gwm||6e~b000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z000000000000000004mhed1?`SQ$x0s8PP5=wN@;<{%&-l$lhF7#)uB-@N6AcE@bq
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
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/noSubjectAltName.certspec
@@ -0,0 +1,2 @@
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+subject:certificate without subjectAlternativeNames
--- a/build/pgo/server-locations.txt
+++ b/build/pgo/server-locations.txt
@@ -114,16 +114,17 @@ https://self-signed.example.com:443    p
 https://untrusted.example.com:443      privileged,cert=untrusted
 https://expired.example.com:443        privileged,cert=expired
 https://requestclientcert.example.com:443         privileged,clientauth=request
 https://requireclientcert.example.com:443         privileged,clientauth=require
 https://mismatch.expired.example.com:443	privileged,cert=expired
 https://mismatch.untrusted.example.com:443	privileged,cert=untrusted
 https://untrusted-expired.example.com:443	privileged,cert=untrustedandexpired
 https://mismatch.untrusted-expired.example.com:443	privileged,cert=untrustedandexpired
+https://no-subject-alt-name.example.com:443   cert=noSubjectAltName
 
 # Prevent safebrowsing tests from hitting the network for its-a-trap.html and
 # its-an-attack.html.
 http://www.itisatrap.org:80
 https://www.itisatrap.org:443
 
 #
 # These are subdomains of <ält.example.org>.