Bug 1706126 - HTTPS- First doesn't upgrade redirection from exempt target domain to subdomain (which supports https) r=ckerschb,necko-reviewers,dragana
authorlyavor <lyavor@mozilla.com>
Wed, 07 Jul 2021 14:19:09 +0000
changeset 584986 912174f1a355276bf4ef08d7890efa7e37b92aeb
parent 584985 932f7478dc2aad3ae83513b8f0c89123fab78d39
child 584987 9d5ec2a71554836d9f885c0bdb1acb71732abc3b
push id38591
push usermlaza@mozilla.com
push dateWed, 07 Jul 2021 21:52:19 +0000
treeherdermozilla-central@7dca70384eb6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersckerschb, necko-reviewers, dragana
bugs1706126
milestone91.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 1706126 - HTTPS- First doesn't upgrade redirection from exempt target domain to subdomain (which supports https) r=ckerschb,necko-reviewers,dragana Differential Revision: https://phabricator.services.mozilla.com/D118704
build/pgo/certs/bug1706126cert.certspec
build/pgo/certs/cert9.db
build/pgo/certs/key4.db
build/pgo/certs/mochitest.client
build/pgo/certs/pkcs11.txt
build/pgo/server-locations.txt
dom/security/nsHTTPSOnlyUtils.cpp
dom/security/nsHTTPSOnlyUtils.h
dom/security/test/https-first/file_downgrade_request_upgrade_request.sjs
dom/security/test/https-first/mochitest.ini
dom/security/test/https-first/test_downgrade_request_upgrade_request.html
netwerk/protocol/http/nsHttpChannel.cpp
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/bug1706126cert.certspec
@@ -0,0 +1,2 @@
+subject:www.redirect-example.com
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
index 4da6b2660a9b1fbca20294c1d6215338865a0c53..9a33ebb1cb0bdce03dbf61420f76626d26518127
GIT binary patch
literal 294912
zc%1Fs2V4_L+W_!{(0h|!LhrDl1W-^BRKSJ;qF5j#0Rka`6gr83f*>l2*cB_-&)!iH
z6;ZID*c)PRXYb;-n?$j|o!))Q`+MK#uURHLJG(oxv(HX?=+J=-9-SD=<|I*gL^s?x
z93GGBO(f!QIB)c(fNLj%-lV^{kH`HzZ=7>zw2JUGPB!xnF6)`_VAlGqge-gX4gdfE
z00000000000000000000000000000000000000000000000000000000000000000
z0000000000000000000000000=u*99Wp#B;@go^58a<twNMX=eTy6+IhRLAH`48*s
z7uJ^;G&rE|2%;#DIAk#Kb3W0QLPA{addi5_5H4B+lM+K`eqKWMt2K!7zFmWxU4XQ#
zuAwP@jHo=9ACo|*@;)yi^VJ$8x!>;v$<B`;tE>O19t<v*Pv?AIMEa|hh%>)khZo7N
za0p&b*VGh0C5cCgVbVY6eojb9))VH}XJFqiOQQ`FGAwA2->{Ly0ewdj!v_Zq4eyI>
z!GFl$eglL2!-#%;h71dHBvKIcMnZ3{=*<mFi)LVRNZ2ed?5-Df*GqI4Tg1y9n|NRo
zGB)wVCSKUY8=FwDNenvi7Oe^qPep4)Tt!pycHBi%57Cq?ntF<+UZSbDXi5=HV?<M`
zXvf66C*D6%+Ettut=UzyW>?XgT}5kl6|LD-v}RY)nq5U}b`zC#6P0xnm30%9brY2(
zi*m`LT(T&aEXpN|b46<=i`MKZTGC5A6}6+NzOINkjg@s3?Xw#qo{~gUY`(i_j=N}%
zyJU`=XzDJSdWfdjR@_DFcNeYSU345gL}fihWjzq_9C2BcD~Z&e6dyzpY%Z1V;pXn<
z@kP?LJ?Yk-bZ<|3v?s~!NzeAA*XJa;y%@Q@7`eR|xxE<qi(=lNlb-GS;Q47~<o5j~
zx9=~xeSgXA`%7-$Uvm5YlH2!}+`hkP(z`uLX-~$qC#mg8T6>b-o{asR6m=SLGNyfZ
zVzAwzc~B5q41(B^q-1sbn&NTd(2~Mr@aRz#K94QBANBbJjv{?d63~z+kHtk9^oAF{
z!;%W(KL7v#0000000000000000000000000000000000000000000000000000000
z000000000000000000000000000000000000002M{~CFFMRe*Sh{OqB3;z_}5?&Ub
z79JJu7w!<Q7gh-u3d@Bh!hB(-Fhv+Ij1mqP4iW|kdk9^Hc0!_1SEwqK5xf^X6WkND
z2+j$P3l0gY1)Bw{1xo~T1f_yPfk40)Fa=a}^#A|>0000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z008hmOr9W(H`wN^<swSV%iHcON=)0g$w`zbFjaJvBorJ(iR@^By(E!iCrWS@kF}K~
z#@L7w@eM?4Ny5}hlo(rb*HV(WV<Ad}dF?TmB&y9siJ%R`iIPOPsVLDa^n{5daokvx
z@R)zaNRqg0C`vdyY%`D~KIn@Q<~j^LNg`fXl+YXKqa#W5=q5_2PTQs}No>^;C8W=N
z(3B+JYhVfecQ!ZFC5cuwQQ`^zt*RvPMn#mky?&~)Br!!vl(>BTtfC}wMnRM~b=*f@
zlIS5PO4P5T%1RP3GNQy@bDFdyK_!S1o1ZyI$q}R#(1g7rdZb*~l{of#_G)%zYDH>(
z^26kl?33&*yy-kfT0>d|cLdiVg`A=woGLUHtQL6Z)a8U{w`Qkgx@FX43`xJ7o|yI~
z%_((Pss_J;@5I~1eZ`%?*}>_b(wss~j$%K|nv}V`tNS7V00000000000000000000
z000000000000000000000000000000000000000000000000000000000000004mh
z4blW0-UXXDV-qJsLU%mUjiiNW$P&V(3CfD$tV9+&jYahLbNq`uhZN~t8Xid?*&^1W
zOfAzedQvi*L*Zl){plPYBbGs>@aRN8J};ilVem3YdWa6Tq@tGEAa*8$$)pg&=v*Fy
z6-Tl}%&{CLEyEBFJC?zu6Z`WSG&+qqB$>xZVq{Wy3^vRDw{OwzFY0gm7kM_0gwc4!
z`qM@T%7%VS9-YI&b}o#==kn0)eBMdxpIO-Ix3_`iZ{MQDZ{MQ%Z{MQX&m45(&n#^E
z+v{TT+qY<JO9;aw<|HCwB5n{}E}a?c#AU>>=rm_~IwdKYNq45QlZ<|JLBro(2ZP_f
zMg8BtMZMp?Mcu!M$~u3M*X_6OsrGN*qSnuZ5zU`jSmU?XMg6yLQSG;HQT4ZPQRTO9
zQTexTQ7M-uoga)xaxamT5Cv>`SuLsX&`)>dwWR$0NIHl%c1KQ2We}Us;!zkZ;&28%
zjbwqCiMMU=Y1>Z3zQc($dJI2~$U}Dn4J9OF#8A8&+M#qRUvvTQ%Zg*L=yVRYmt@3U
zTvI2sq-58Lw&+%{vnq|v;l*dzp{sFWQIhDs^i(HowN6wD$q})aRj@AzEO@1YSHSBS
zQ{yQdCWS{~_2!9J^5ykR@qeP03ctPg$p7{&%Ki2&%Kr8(%KY{%O8@pP5`Oy@rIOJt
zD*VnZD&lZBm(1lj;a=fHAw}pS2oR{}Jjz*@lbtg(2g$)_pU7U4ou2KSwJj?@t6!F8
z=H1Nd9FLr5!r075**Q7GGxuj#<;Z3?=j00Avvjj23c3j=XAQ{NBs`GqmbF_Dl({8y
zExLLD000000000000000000000000000000000000000000000000000000000000
z000000000000000000000000000000008j+Nsge2Uyh4(k^FU*{B@Eh;P8&tgb+MJ
zB$*&aqF>Bb?k4%gdOGdP-<@~BmbJGa1mh87k|ClmURIMEPa)CiUoL2eEokdZh{hwf
zBx}S{yrA*tl{(SWlNp?^S8juqvGycz@Cb?If;frGSTk5uCZ9%k;__o?>?8_<#dS_*
zuviRM+?R!|u)>z#Z7?k@%{hibqtZD%ap5n^SYTz$fBVmqn_-(J21w^B;t^j`55!x%
zude8RI(J@KCt3!JlEk2XSpidQO(vFvfq2A(WP})qSESWJ+Ztm_8rc%U@Q68yh?t0%
z)aBBdu})k@9P8_)4Y8#S90-wk#EN8rn2DD*z#5awkBh@9%Vs%!Q9vInpl3%Ijz=s=
zW{9b{fF4!=-4S$WsJt&1*TojsF(h=yBi%?^h=zD^#c)<4i=D<I`ulam7SOgL48|j-
zBxA%-ynr^^&s;soU-vXEY*9@|!e~5V{i*#4%7%VS9-YI&j$4?x$F(0n4XlKEcS1TI
zaVNPVh`5AZ3_s4D<mQcdJEyapoZ{0d2{G~XI9E!h8-*#Fm5@$hCexV7YFK$yBZ3be
z(IIIgn&R?GU+j|#wuEvgospGD!j{2Fx~5YcKLfk3gq2aurAg<bCs*zzk`khT6_eGH
z3J?8sM_x<H-;bn&Xk&Nev{VMM(Gv>oB*ftidfKN0rKn}_sarY``wl14=xEJ|JoKQU
z4g0Avm9(@&=~O<}9K^n?I0lPO=U^R}jJS(W0w=Vjq*oJdC8uo~o5PFGutQhlf_6o^
zFFn->Tdfn7LUKgxWfklT0t;TL;1%#X#?*KUhe_d4SiO1Tm3(=~6tJqwe|N|v9o(sd
zvs(@;A!|nHher%a`iQQ$g!&*hHJ%}=8I{SPvv@MtV$vi+EFN(n*&#OKst|*clF$mW
zc+3o90D~)uKxnnG8xL&(0#;0_2O(PlA(Pw@SMk~%s9&7?X$-XU@Oeb^yi7nl^QYd$
zNTm-(TY{^IhF6!IDx6S9Ko+bP91<de7-6|ET9_#qCp;qDEPNmc5e5rp<XjfK7U&CF
za_Vy42yY1Y3)cuI3pv6O!ahP<p{n4q;JjduV5y))kS>T61PYu58aYpLnsfH%Y|Hrr
zT|EE*000000000000000000000000000000000000000000000000000000000000
z0000000000000000000000000000000002|e~}|-;+NwhT_k^<C4ZeHe;ri_CV0tj
z-P36flDYO;1baL;o<fSEvuNlI`^9)WNuI4P!L_{vg+-&MCo?#7nvEpiTASdA=kh2#
z1~o+dtM+{;G%HD_r3S$oA48$}(>c5Vb`pibvXJDMD-d+>$#HBd#Y{4X*p1+fr)97x
zNnftXRFZ3=L@>ZhHf=1KXQWCX;<<EYESC|-qSFi|vkf!}w)hx+9EnW!Ks-FL-?-P8
zWa)j%@<hlaS2C8RE6LKqR>o%~ve;>?C@Q6!WVSZ8S7_6?dXT?p94$$%CRRTRlSk*U
zDCmUE=4nWB)I~Mt$GMZ-yb*6~Lu!&7RqPO;HRsYfsdSEtWUex{Je^CWB-1H89)+4n
zQj+8-V*5-_Ww6i<B++RMbVCY~EO{LQ@=cTVXR~Q?l5AOQOG#{MJcCE)@?<1)rS%D9
zJR>QI!9wf8%!r~fxRQfQkSrmkMQ~JLu|xSW33MvYkI5TMNun#Foy#T194BlQ9u!sy
zi-d{7K|&XyhTxf?S+GqoN022LBj_bC6A*H4=G5h^%$byvBzP^b&S}UA6W$RX5v~zV
z5e^f&3v~n+1iJ+b1>*!Uf&hVh&b^#<Ii)$AoF2ktboBrL00000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000004mh3VH;0d|B|qlX@!3E6WqlRjK|l^M>zGnNu!UMt0Wjp5td)J>Fd<bm|x1
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
index 99a6ac3fa68aa28a989bd989f1a63ce691726f33..1b3a13d37d34a92d999eaef8be2adc50cc4f72a7
GIT binary patch
literal 294912
zc%1Cr2|Sej`!{_1PT8ewW69pwm&m@WWM5-282g?zjYPIA6=jK(tz9Y<SxaRrvSg`j
zB@~h<(KG3H{rfHVGc(ugeqQ(e`al2U-Q{%7Idgt}9H%+X?<`yvhfFb{Xnv1?U_VqS
zzZ}Ui5>iqUO@4k75)wJw2QA4TRJad{f4WRcLYN$hw1o>}+!_f@lp0C&r?}SW%4k$H
zU(`sHTGSOH_6Gm}00000000000000000000000000000000000000000000000000
z0000000000000000000000000000000000000000_;1CRnwpb`hZHLjigNWu`=LWo
zx~NdpU!Q4o%=NS^_4qBdv`zK+|JuqgigD*RGdJ3=Wp2lBqG!i%b-?J5l^*}W1N=G%
z59pg3=~(ic>zSEq>F7!FV?xn>GQU5`itVAH;?&_GCBgW+qa#9sd~sWyQDLD0TbG^x
z8sAywuQgh2Dk@G+0aAyp8@TzPFz)^#A!fmta8xLo`XAwp4(RIH@^4-FE5e@}@Qb2k
zkg{T$lv`uiY>nZIaz*?8xe3+3jInj)e~cj~rcXh|xl@4D`FHFvS8udi=%1TV{>vEu
zxcYyQL`F=9oQiYDU*8QTBqR(S{O2|l|1!+)YyV>uWf`#~b5d$f0Rhre0b7Uc&((j{
z$o}Q9{qq2X51f|vL32w<eiRb-fje#}S=@)*ul21BzqZKy+NAvJqVlhc%3BwI-9%ab
z*FxdfLh;u^>DNN}*Fxpj0`+U*id(2`4Tb!@+!_%nyS4oNb>z2}3R_FXt)<e|Qh95s
zvb98QEnT;kZd<{A$NQacYhCvD`qs#@TO-SEjV!x0vh3E#vRfm|ZjCIvHL~2+zH(dp
z%5Ci{x3#a_*1n2c*D7vZtGIQo;?}i_zpvdIS#fJ*rL9{k|6Xp@aqIh)MgCs@wXf_}
zW;x{VrOejy*LL}>E%IAi<o~fnZfhyOwN%(z{`xBNTjR@bjW54-92B<pRoL2B0r`8&
z?|pG(Wn})W{yvCXer<I_E6B;qDg4u_?4MP+KdbV8Ru%rND*jnj`m?J1U#p6Lc2oSb
zo8q6{6#wj|_)oj3{MV||pA1TW4W{@fui~G)ihuGd{>iKOC$Hk4yo!JFD*nlfTUGh9
ziu$wa`e)Vc&#L>MRrH@#kN;ZT`l0!~>iQ>+>#sQO3MizzD-tOtM@GeIAn^az82{XZ
zon`*4ljGVq&95HL816$tZd*ZOTj6`&)#U&32?YQE0000000000000000000000000
z0000000000000000000000000000000000000000|3{tXC&iLcurV=7{`)m-!SYNb
zxPMGcBqU5MEC~!GEQ#C+Tz~!h>t;;9Zou@v6Cr_tJFDq7ZiSqbG$a%iig7c;`1@o0
zJ+)Epzph8h$m~H%QIT6wkTZy2{M~%R+|g1YVXp20ekhE8h;-oZTT7!OP=0~FXlb_q
zKSj@?hL#!fA1l}$q@PZu2#;bJT}Xc+DJ8MT{ns4!*xZA*=m?FtXVy|}cx#;FwDK)q
z<1R#1$IE~+`(g1httTx;DQ%ako4>Lpec6dg)@nFbx=W3PO!ra3<u*e(%4ya#QmP)B
zhk1#+UGBdtnOP1HeDvx#Yu%fhO2_qvyAQn_80{_VP-~}}>p}+3pX;2WE6o}dvyTgU
z^w0ytBO$f<#7NhU{?Vmbqm9#5gBF_3oFU=o&n9{Z8{~e}#?YLkVb<oyoJ-N!oJxC_
zgdIcND=X+d9>&UdT7o5QBJq2y@GdIx-lK~gOG#b*2aZc9)SliJdO!0@YCFnPNW5yp
z&y|gltF5W_aYk!sf{m>4;OoS9R(p7Ockl!Wc=bIXB_Tz|lO9L<QPGMg8YZqXl2S4v
zU65LTE;1nHDfpu+h6?l<bcZWuXR>T_H1c?wJ0@7qvnO0?jNeJdEOCI0l$4B=A4x|=
z^LsZkTI5bDT9-saQZzXQsW=6bY*qFr<3@q#w4g@IE(wZw((MK^$+oELbF&>X!x)B1
z@|T@LL0NUm*DI=NrD~1Y4H~75tb9iNA98sKE6=-7u<1`GWl4+-=N$Q5o*Ofra`K#a
zp6J)R1vd6do>K>2ozQCgCVQzXgSDV7F6wa6HmQpIFAQy2r4}Uq5m(2VZba~u1r{aN
z^f4{Gs9zwJVdzc&UNzx4dRvmSKh=&kf!*(;%BYr;t9f9_o&L-2t{yXX4{lx0spjZ<
zB%w8B(Q7jLJWlFXIQMfczRR!oq8aX%DBAYbvmZEYV>(UhI3|=7<vV!b_`{X5nn0bR
zxml$-f9;_9Q=3}j&*|5UPOa?fU@R$8Yl(~=eJ7HB!QTGa*T--2%Zgb)Jh7P?X+l#S
z%gi4L#2p4QLWg0uiW2`cQk8+eqUx1yUjp0S_Ls8PpZgw&*N-LL9K57Y@GvAg^=O}-
zKOO3L9iy)Hi2|GH|3WV&o4%@Jcw0vs)h71D&s&ce+WYECZM3q<8my68W>3C^A9BpS
z7_O#clWZln{g^7rK-G=n(p3FPZpyUm^TD@z+o+~TLLS!&imqe0R?^$;4izgWiaK4O
zos%jwkX-+MNoC{Uyg>5BzK7Z63$OPmWbddSl@ptOfC_2l?tAmzVh6p~l?Yn34L;tS
z`HmT4su0(kwO@yJ)U=P3I#79IC}O*KH7ak1>*egDlqJF(PdW%z;VmP3Vu4$&$9TJf
zalj2+6(oOJks2P4?OF44&(r%kMwga}R`|wyLO8GJEGP5utEr<jCZ4ZSw$1g+tg$cs
z<eF5tJU}YGv|wjIW9mzhABd>G+|T;KR!p6uN4`r@VNryXtm+&c=6lT#2TMfkXC4yG
z;dr~<9UP8*5-V3qIk#sV>yhH&C{y~hnUtR8t}N5D!(mh#l|mu<;u96wwFjeV#8e?u
zj^mRh6LLq3@`tY{JN%qQd;APA>c<sMf9_>03gJFMunL?q2J}MpRBf}tI}Kf5;Hq$`
zm7SU5mN6Tfl6Sk{yglg@*_C>d9`rp1!}DVI`(Kh;^KyTD=r!`?&PV@Cqj!Z^_paU>
zx^-$~koRg+GS|mWra;6ivlnECS<-B3<x$t{&E@XRDECpl_~7g#dF%F*6zh=M+izdp
zDbZq8yvSXi;yInM_vI*p<+^=^3%LdBW4;&L1k89P={gc0{+#q3)GJ33Q-w&mdvd8a
zjux<?T?M#=4j*Fkq1DS^SomR@q7Z_1kVX@%f`(M6irziGH;F&Q_2(RLRY<xj$<WbX
zI@YFv%)9!=pyW+(@RGrxV@^v%aBb|-#+&`KCsi-{e&4-dsu8?@XM0OuI^#&KQ#0%H
zFMHjaRM2F`jRy~QaOXGAtR!xee8bq2E72}-{utBa!kVv)*N-Z5e@Qmj>)A<aS;-wN
z)f}co*?Q~tK_eC0_%m-0N=(nLaUMH(iE{QcNiCfS^<6ER?owi^(6aZ?cexSC;=Avj
z)nbZo1+x{jS%jSkZDfw9_{!7MElRKo9s+xghfaKI-iUNLHFyzMg{$Z^nUn8yv#zk3
zZd|%F&wb;-KIfnZ-{07KKIyY{j`aEz&9Im&HXM6xzQ({L^{PeKaBkY|?}aLu?JqU=
zzgQtZ!I-P8YWCiEaKJvTKSYKaUBr-Vq#!v_5K?@_dB;Zl*StQ4nMTPX$DSgG%h#t*
zyzG^yj%E)0l-lr0mF)<9b>JI+37hcTqu+W?ni@)6yGx2Y{geJrKUtqKA;*&cnxcvR
z#}w_j@&CCwT8%Wz?>QPe9OEB~4)#O4V^E>!tr;42RE8c&`)i6u#Y$#n@z(_!Rx%we
z84e`duM5<yjQaz^{6lebHhyai`iP7mQsCEiI#%xe0Z|xVUlhL-zn(R}JK8nOlRp$4
z63UO;nFseHi@Om$E1Lz{Ei4!l8p*Hc?}_n8ql0mCJ{d)%{MN*fRSLJKC2k+wMt)J;
zR|yUa2|W@J9O@M*h8t#&KgtiSjt-alHLR2yN=6bX{$F<{T2c-kH!oDMFDew}uNnG#
zkbj;{o;JSlf{T%%@~qELIn&LYDfL5?eg8b0yla%~SV*!xo%!OoqNK{n7o{Uk-{+T3
z4%;-kvwCGnP6bQ;+@7i297^_7Rop<mLDc)B#%P~gkG&Y%5z>Ysu0fQ;HwB;mz9(|t
zSJG&M6jP{LyL3@?`wnRz;M9E}edVS1Rpss-UIICMNkPUOZWs;P@Lg~A`&<;B?QVa#
zn^8F<qR976#0?qUkD_gdBgK^6%1guz&(SGfW(w|)d|D^`X083S;+_q!-16oy)5Ez>
zJzHnTxNoGCbau<9kYZ|?L`w!4xN{f+<ea67^Yh&`>>KYJ&0ML(esGzHO){h(vl=_Y
z`JKzG=z*1K5B9Rk(bNi-6#0hF5$NXR>5zlB#VCoKO)f8cN}Z>)!*uw{oHR1;l0VZ)
zeMUXUuDD;1_WH@^jfC4(1#gw`gA{qP=)hNl-Gjeoldb99*YC?V%{?rLH`Z(!o;jot
zmo|`m%z<q&i)|v={_)2|rvxYNvA1g?FK*AYPT3#NKg+}BXa4ksxfC*N{t2>Qo6F;X
zz0HT4ncR=wm>FU|mSUWb>*h@b?a=O|EVM&c53%GG$4)Fv*-;%N@eb;zFCFqxaUION
z${EV<M;bG-^NfqZI(4SQy-DT9yr~tPvE?&siTk8~t`@(RP2J3>{g!8~DeCmh^RszG
z^zI!Yl;?JARH>7P>`k3d(rNCLDNa<ZntvnOxz05cgGtm~H)9N2qAbjQvi$MJ$?STM
zK);@4%Z2TJd(&4h%{5lhCVe^4<7$4~=Yki#?$8gOlY%KOL)HQTkI3nlBGkvewj0$G
zbJjT26g-tH_*Q4-5S7VAlKK<Mn=8xuk;iYvJUq>|vUA9n;9=-AMwM&+sA4tJ;Z^N9
zi92hgxVw^*i}Fx>8d@kN^T2MdAMvJlX3U>>#G2!;QGEj2uiG5#%5aQz+jokduC+F=
z104)Ms0&059_QuPldhNR&}0qexo8x6vpg5S+Gf2;`ZB3cxjvL%`s*%N`%}kL8;vC<
z&dq&&^&wd}D><y-C;hW;H>95K?|J!(qF7D1Y>mNu$zWoHn|iO}d4T{fFRCeGs!&Ty
ze&klKBFjE!IpcHp(lxJ%bOy@2DlqcTuCK{M77h@sLctjkU7xc*Li)U4p9?U+Rbl+>
zR3-Z-z7|R(=W3jfA)|+Q@Ke=DrNcbWd}4Jd^qi>g9e-q?Qr7>hymq<qy17THaLi=Y
z6l>!t&na?gGcjbQboD^*)sFSy<BUFXS^Z5_C%3OMOdI!lXN2>h1!g4XzGD^wXKON<
zSD6bR*6ez}&TKM&%c;-ghs+lq%o?eKXr|x1*3?(Y_4^_rwaGuSiK)WFZ!O2q$~3<p
zy<f0~T4q++XQRYdrrsS!s<rRD`Q|7)!77yS-!{s=*z3VXzIXX?7p@AEiw~l?tdwXz
zc%8BA96ELSTNg=8fhX;L37a$u>Jf<}6yibqSI3{!rG#31)Ag99d(=tmxe+6G{Hf^u
zg&3Z`U6eL66)%reF-q`X{9yHYz3a>_vcvN)w64A3vJLe3X6U{%c#lcbApt%CJHhg8
zJxlqLPIujc9YlG5425WBT~%AzBqy^ou(|h<-$(HDq*41#VyZwzZ+6Q;C0(5o`|XR)
z9UFBO3IVUNdBc5oEE;*d^WDM;R^gNdFY*?;;hXuq{SnJIxGH#tv-qW4(_B^+Z&^f9
z$v;_{m|`Bfs=mDNs{Qkzq%x&o4ZX&VTkap~*_!g(YhN;-cqW-cLYhtHGV@LO^2N#%
z20H7dPW|Ec^`lBnYY=OCSv|{sd;L;-R3A*BKVi!iJN6YyVj4|TDFTYzIv4j}yBD!<
z-+i?t?P_I{-Kid53{1vSODwV*WnO%(m<_t)c#oJWn5IR2Nq8IE#57}k{)I~8rCs!6
zsQ5Qjbx*flbvS2kIYF=r?vX)8R(TSQ!A;7aKAgc-;jN_^hf>1pfaXidBuQ~2PFX>N
z5pxdq@s|$dIlYYON1zTnto7br_(>TOlGv9$?&mn>Y&LHkQD-*!@j-;xIn&6K2A|Jo
zN-j58pQ)rB7GR+l^GLE<YxB-wC^P*rSan!Hgj^+0Rb>NvB=cLEb!K3@*6Jy4F+Uep
zt@@d>$1aa9S~6sd@UAWVOl6E5Rkh~Wnoa&sKUtqXNcMX+$?+evNv!+-x!GiXe9iCK
zWT0n&8)|D3=`ACQ6!|@y<FiEj1qKA8f+P8L(7~Y?4~*Nd|5c(^Sg2RPuQ{L$7n0-m
z+;Q7qbH{&7{$zxZh~E>&oo2xS9vELVzd;zr9qrD4FfbJ3hlxUkVgmeQqU-l1<Ona;
zm&ZxzdyRW3T)idn&ojFFCl6KVp5hqL+VH=3l1g#Ax*F@N*(n9%JM$}EHoij9&F#V!
zZ-@9AstTy`{kaoA`%K)l5A*SM52A@GwJ+C8THVzzR6usLOXmkK=D9Mz*y*eMtwvKL
zb*3#ozDyt4<F_pxy^i6o>LXK471#Py9{6?}WBP^%y~Hh{?8~urCsC1^RW_OGy?Y<M
ztu^GUQ0hCWv#^_E$g0M}{>o9Z%sr~n+mBHRb?)-by`F<|sF}!NX$q6M#E><1=h^Cy
z>pa4Jv<r2dOyyqV)zNzp0hq}<DQ8hUpF{?P3$JF;98m1oB}5_F$dS5ddMV>Pr%Y}2
zrjg+H;6rUP{p8n%x#$!=rV}}%GeZf`+r8k~^j|S-$#_tjI1nePe2Prr8q2M*rPdj(
zQGzYQOCvP)`gnI{X<pWs#pAzbbV<sFWsK`u0b~OQxGE<DO-+KDCq1}5qNZCe*!O4|
z&w9@VtvkPLSzK+u^l*)A(-G}J5&Bkk>f@8UN0KrqJf<4ogtbve@P8`b(0z3K=bi4F
zU6%JsjFhdWBVKV0Hj7o<d!PAbVf9gEpX~HL_So%8QV%o=RnIM5>eHW1A-j39K|lND
zi<p4)ba&nNjTahemA;$xblNUXlaSncx8F1?e0gNYbf2x^L{WUuz|-Y2gTNF%O%?sw
z+DGiEZb_Frjz9gmH<(#7f-CE&Vt0eXiI9c|?CrO(Z)gP12fMAYCURLZQbhD<x?MT+
zQ*F)cTV(%jZl$;19i#Wky*A;T8;pFXcX>no=-d5^RR#L)>JlSD^2BuRL|N|4W2Y_b
zPLCHe8_dXk&|Azfc>9DkSw`JA>Qvdq*8~s4bp1V_QtOi1H$s80D?)LdyD~#G?*8*u
z^A%GOr!fah^_V=DXEd9SK3kC8)C+Cl8?z-t_C(Jq`rPoJb>Z^oZy@VgPt!U5Zte1e
z3hnFlG|Oz2ryTRxC-!9Sr?LMk*4lR|sJKS0bY~@x$yHB&GT$Zi(t($)Sc_yEjqM-B
z#w|0dN3jwl)kjXB(Z$S*4DBC5#I{b~aaUt&zQDOtZP~Grm@0%g$v$^+SxsqMk#AYo
zndfv{l<r70m7UQv^td~zMMn7iWg}EFudfg<Lv?0jWjhvE1<i{e7rYi4W>j50Pdk3_
z9GR$W?U{9}Kz&v-5W85F{qAPNPMI&M5~7FH9k=h35bnBZ<6dE1`FJ+YX}57>ad5E|
zxAu*LUOzQCLNwIqXF2pZI(lzP9lh77#+%H?SyptD{(@kgt)q5BhtsyF)<e>7d0yv`
zVMj#U#0RUwZtB$aUMOP<M_sr}qB~wjLO*?jnwTo&+o6;0{5bhumZQ^&)M>u$>*TwW
z+ONC&dBm2C6VA8v6Rbis)AA*k?A_hW?c5>jA-F0O2VY)qJz9IOAv-c_W`~wF8Jq60
zH}#|whLe=csU_rJzU{V{IbiC(asK3m_~xD!_Ve;%xtg4AB6hojoMT+ovag({yHoj0
z_Na-~upZYdi9G&~?0&18w)c;HHEy(x&aLQSBim?W(RA-ryF#+B`!v$05+R5T3M^$X
zkC%VG_WjNF9bp}kdrQ)0GyFdFGgK=PQ-vvS-R6Qjd)`mQeT*5dw#^u44EM|Ao2K)-
zHk|4p-fu*(3IiW9#JsfDidyRpXfFSH#yt3rQ^VeULrX7K?A>{J+FLv7Nyy#JMIyW@
zO#LF8cd=!<hS|2CTpTp*?~|cWi0mA>Jm|Tx+o7MEq6QuCHeE+ELbTh!cRqjM^1;zB
zOM5buf-{w;CP(+RoJKDXS4Txz^@r{L6qUbO%X-}YID@Q`?WB`THEJS5!ThN31X)oK
z!|<1qw41kf<`tz57Dy;H5L1Q5f@h<%W@ECg<tvx%?WfKUdtG{vAD%-UQt|Gt@VO(b
z1goH5b8)1QN<~0D-s?Q&M_d(93wKPZLhd$H%&a14XAX=Vcy=u3v2K0p#zO=0;<Is2
zoT{XvmUza}97Qb!io$ZJsnZ{rRd7;06F?mrqtJ-w$T|6<-$-5RN7@%sokyQ8=^H3f
zGU^|06=LEsH)Ekyyt*;Xh}K^`8}ry?>2#3RSCInI&fWK<e~>VeW+pj(tWWQuP(<%e
zs7iO~jZ`In@t}HZM)yDcWKBXsd-i{4HU<Cy0002~KR}23Adh=T61Nt&fcpdh00000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000Q~<L4LJoVca1a)`PNE)d<_{jIR!0uR?}@d+_mI!
zpGo3=#I52!0RR9100000000000000000000000000000000000000000000000000
z000000000000000000000000000000000000000000030Lr{>Dkdpsekdc#<(9*@d
zBq2YlM{-mz&h==_|Ltr5000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000@ZX#wc`z+fMrIFE
zii+Hdf}BAF<L~Ah=8l#M33GK1@IztzL!<*S{{9$$Pib@n$}i9tE$tTIhjphoZcK{A
zj>^y@X@BiW#Y$#n@z(_!Rx%we84e`duM5<yjQaz^{6ld=@mpiiM`Q$%0>8G?v2yPZ
zh{E{#qWGow^{n~b(XL^h{GsTOP=4IbJjk8DZbZ+@W`TAK3&w;-^6U9~V*JtQU|bX#
zMWp;zUREjGo|d?Ma2xqWabG1kEF|<uKyav6q!@0PJ^m;^v^qLm>esMRZYUW^q&O9=
zc%otADkCW^DF=_67b@5n6^ioL4E;UGKYx?tK@?bbQlz(xC{pD2SL3rp`vnFBqk<#(
zb<n|~7!QmaDiqDH6&C6h@GGMX7n0-m_qOe?@9iJqWQ352-`~(qv)}*^j4ztsAPnP<
zcIQ7B7>e=3M4>`40sdsTBO*!cp`(jiAR&)?ND|i@H;wxQ00000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z0000000000008_q#7Ztn8xo2N#kiSa{QWWhp4upP7IINibU4O86dmk`cE_MX(d4w`
z9HfDs0d6QV+&;|zG6Eg$gFNmYN!(0a5AG8H000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z0Px=k7r8v?Y2ynoxEL8K&-x6NGu_OYQa?o5NB--InCSX_2|2=x_2qF=`d;H+3RiDQ
zka3dB(<*uvHMGo-|5(B9ApLYIMR*j;=)#B_t&ZjbNu2G`>Z44tn3%R0zUZi^{wQQ*
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
index 8e0248d561350609984a287ea1fda33e805f52b1..bee75e7a471e49cf2cd9266b71b33d5556028f60
GIT binary patch
literal 2448
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
BkRbp7
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/pkcs11.txt
@@ -0,0 +1,5 @@
+library=
+name=NSS Internal PKCS #11 Module
+parameters=configdir='/Users/mozilla/mozilla-unified/build/pgo/certs' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' 
+NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
+
--- a/build/pgo/server-locations.txt
+++ b/build/pgo/server-locations.txt
@@ -343,8 +343,13 @@ http://10.0.0.0:80                 privi
 http://192.168.0.0:80              privileged
 
 # testing HTTPS-Only Suggestions on the Error Page (Bug 1665057)
 https://www.suggestion-example.com:443      privileged,cert=bug1665057cert
 http://suggestion-example.com:80            privileged
 https://suggestion-example.com:443          privileged,cert=badCertDomain
 http://no-suggestion-example.com:80         privileged
 https://no-suggestion-example.com:443       privileged,cert=badCertDomain
+
+# testing HTTPS-First behaviour for redirection (Bug 1706126)
+http://redirect-example.com:80              privileged
+https://redirect-example.com:443            privileged,cert=bug1706126cert
+https://www.redirect-example.com:443        privileged,cert=bug1706126cert
--- a/dom/security/nsHTTPSOnlyUtils.cpp
+++ b/dom/security/nsHTTPSOnlyUtils.cpp
@@ -717,16 +717,38 @@ bool nsHTTPSOnlyUtils::IsEqualURIExceptS
   if (NS_FAILED(
           aHTTPSSchemeURI->EqualsExceptRef(newHTTPSchemeURI, &uriEquals))) {
     return false;
   }
 
   return uriEquals;
 }
 
+/*static*/
+void nsHTTPSOnlyUtils::PotentiallyClearExemptFlag(nsILoadInfo* aLoadInfo) {
+  // if neither HTTPS-Only nor HTTPS-First mode is enabled, then there is
+  // nothing to do here.
+  bool isPrivateWin = aLoadInfo->GetOriginAttributes().mPrivateBrowsingId > 0;
+  if (!IsHttpsOnlyModeEnabled(isPrivateWin) &&
+      !IsHttpsFirstModeEnabled(isPrivateWin)) {
+    return;
+  }
+  // if it is not a top-level load we have nothing to do here
+  if (aLoadInfo->GetExternalContentPolicyType() !=
+      ExtContentPolicy::TYPE_DOCUMENT) {
+    return;
+  }
+  uint32_t httpsOnlyStatus = aLoadInfo->GetHttpsOnlyStatus();
+  // if request is not exempt we have nothing do here
+  if (httpsOnlyStatus & nsILoadInfo::HTTPS_ONLY_EXEMPT) {
+    // clear exempt flag
+    httpsOnlyStatus ^= nsILoadInfo::HTTPS_ONLY_EXEMPT;
+    aLoadInfo->SetHttpsOnlyStatus(httpsOnlyStatus);
+  }
+}
 /////////////////////////////////////////////////////////////////////
 // Implementation of TestHTTPAnswerRunnable
 
 NS_IMPL_ISUPPORTS_INHERITED(TestHTTPAnswerRunnable, mozilla::Runnable,
                             nsIStreamListener, nsIInterfaceRequestor,
                             nsITimerCallback)
 
 TestHTTPAnswerRunnable::TestHTTPAnswerRunnable(
--- a/dom/security/nsHTTPSOnlyUtils.h
+++ b/dom/security/nsHTTPSOnlyUtils.h
@@ -158,16 +158,23 @@ class nsHTTPSOnlyUtils {
    * @param aOtherURI nsIURI using scheme of http
    * @param aLoadInfo nsILoadInfo of the request
    * @return true, if URIs are equal except scheme and ref
    */
   static bool IsEqualURIExceptSchemeAndRef(nsIURI* aHTTPSSchemeURI,
                                            nsIURI* aOtherURI,
                                            nsILoadInfo* aLoadInfo);
 
+  /**
+   * Checks a top-level load, if it is exempt by HTTPS-First/ Only
+   * clear exemption flag.
+   * @param aLoadInfo nsILoadInfo of the request
+   */
+  static void PotentiallyClearExemptFlag(nsILoadInfo* aLoadInfo);
+
  private:
   /**
    * Checks if it can be ruled out that the error has something
    * to do with an HTTPS upgrade.
    * @param  aError error code
    * @return        true if error is unrelated to the upgrade
    */
   static bool HttpsUpgradeUnrelatedErrorCode(nsresult aError);
new file mode 100644
--- /dev/null
+++ b/dom/security/test/https-first/file_downgrade_request_upgrade_request.sjs
@@ -0,0 +1,52 @@
+// Custom *.sjs file specifically for the needs of Bug 1706126
+"use strict";
+// subdomain of example.com
+const REDIRECT_302 =
+  "http://www.redirect-example.com/tests/dom/security/test/https-first/file_downgrade_request_upgrade_request.sjs";
+
+const RESPONSE_SUCCESS = `
+  <html>
+    <body>
+      send message, upgraded
+    <script type="application/javascript">
+      let scheme = document.location.protocol;
+      window.opener.postMessage({result: 'upgraded', scheme: scheme}, '*');
+    </script>
+    </body>
+  </html>`;
+
+const RESPONSE_UNEXPECTED = `
+  <html>
+    <body>
+      send message, error
+    <script type="application/javascript">
+      let scheme = document.location.protocol;
+      window.opener.postMessage({result: 'error', scheme: scheme}, '*');
+    </script>
+    </body>
+  </html>`;
+
+function handleRequest(request, response) {
+  // avoid confusing cache behaviour
+  response.setHeader("Cache-Control", "no-cache", false);
+  response.setHeader("Content-Type", "text/html", false);
+
+  // if the scheme is https and it is the initial request time it out
+  if (request.scheme === "https" && request.host === "redirect-example.com") {
+    // Simulating a timeout by processing the https request
+    response.processAsync();
+    return;
+  }
+  if (request.scheme === "http" && request.host === "redirect-example.com") {
+    response.setStatusLine("1.1", 302, "Found");
+    response.setHeader("Location", REDIRECT_302, false);
+    return;
+  }
+  // if the request was sent to subdomain
+  if (request.host.startsWith("www.")) {
+    response.write(RESPONSE_SUCCESS);
+    return;
+  }
+  // We should never arrive here, just in case send 'error'
+  response.write(RESPONSE_UNEXPECTED);
+}
--- a/dom/security/test/https-first/mochitest.ini
+++ b/dom/security/test/https-first/mochitest.ini
@@ -21,8 +21,10 @@ support-files =
   file_toplevel_cookies.sjs
 [test_downgrade_bad_responses.html]
 support-files= file_downgrade_bad_responses.sjs
 [test_referrer_policy.html]
 support-files= file_referrer_policy.sjs
 [test_break_endless_upgrade_downgrade_loop.html]
 support-files =
   file_break_endless_upgrade_downgrade_loop.sjs
+[test_downgrade_request_upgrade_request.html]
+support-files= file_downgrade_request_upgrade_request.sjs
new file mode 100644
--- /dev/null
+++ b/dom/security/test/https-first/test_downgrade_request_upgrade_request.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title> Bug 1706126: Test https-first, downgrade first request and then upgrade redirection to subdomain</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+
+<script class="testbody" type="text/javascript">
+"use strict";
+/*
+ * Description of the test:
+ * First we request http://redirect-example.com which HTTPS-First upgrades to https://redirect-example.com.
+ * The request https://redirect-example.com doesn't receive an answer (timeout), so we send a background
+ * request.
+ * The background request receives an answer. So the request https://redirect-example.com gets downgraded
+ * to http://redirect-example.com by the exempt flag.
+ * The request http://redirect-example.com gets redirected to http://wwww.redirect-example.com. At that stage
+ * HTTPS-First should clear the exempt flag and upgrade the redirection to https://wwww.redirect-example.com.
+ *
+ */
+
+SimpleTest.waitForExplicitFinish();
+
+const REQUEST_URL =
+  "http://redirect-example.com/tests/dom/security/test/https-first/file_downgrade_request_upgrade_request.sjs";
+
+let testWin;
+window.addEventListener("message", receiveMessage);
+
+// Receive message and verify that it is from an https site.
+async function receiveMessage(event) {
+  let data = event.data;
+  ok(data.result === "upgraded", "Redirected successful to 'https' for subdomain ");
+  is(data.scheme,"https:", "scheme is 'https' for subdomain");
+  testWin.close();
+  window.removeEventListener("message", receiveMessage);
+  SimpleTest.finish();
+}
+
+async function runTest() {
+  testWin = window.open(REQUEST_URL, "_blank");
+}
+
+SpecialPowers.pushPrefEnv({ set: [
+    ["dom.security.https_first", true]
+  ]}, runTest);
+
+</script>
+</body>
+</html>
--- a/netwerk/protocol/http/nsHttpChannel.cpp
+++ b/netwerk/protocol/http/nsHttpChannel.cpp
@@ -4985,16 +4985,21 @@ nsresult nsHttpChannel::SetupReplacement
 
   nsresult rv = HttpBaseChannel::SetupReplacementChannel(
       newURI, newChannel, preserveMethod, redirectFlags);
   if (NS_FAILED(rv)) return rv;
 
   rv = CheckRedirectLimit(redirectFlags);
   NS_ENSURE_SUCCESS(rv, rv);
 
+  // clear exempt flag such that a subdomain redirection gets
+  // upgraded even if the initial request was exempted by https-first/ -only
+  nsCOMPtr<nsILoadInfo> newLoadInfo = newChannel->LoadInfo();
+  nsHTTPSOnlyUtils::PotentiallyClearExemptFlag(newLoadInfo);
+
   nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(newChannel);
   if (!httpChannel) return NS_OK;  // no other options to set
 
   // convey the ApplyConversion flag (bug 91862)
   nsCOMPtr<nsIEncodedChannel> encodedChannel = do_QueryInterface(httpChannel);
   if (encodedChannel) encodedChannel->SetApplyConversion(LoadApplyConversion());
 
   // transfer the resume information