Ticket #26690: 0001-Bug-26690-Port-padlock-states-for-.onion-services-to.2.patch

File 0001-Bug-26690-Port-padlock-states-for-.onion-services-to.2.patch, 46.2 KB (added by igt0, 7 months ago)
  • mobile/android/app/src/main/res/drawable/site_security_icon.xml

    From de33a36c465f03641209c1114ba5c5baa497b36e Mon Sep 17 00:00:00 2001
    From: Igor Oliveira <igt0@torproject.org>
    Date: Mon, 29 Oct 2018 12:30:14 -0200
    Subject: [PATCH] Bug 26690 - Port padlock states for .onion services to mobile
    
    Prior to this patch, TBA was showing onion services as insecure
    connection and SSL/TLS ones as encrypted connections(lock icon).
    
    This patch fixes the issue adding several new Onion icons to indicate
    all the various permutations of the Onions services hosted HTTP or HTTPS
    pages.
    ---
     .../src/main/res/drawable/site_security_icon.xml   |  10 +++++++++-
     .../app/src/photon/res/drawable-hdpi/ic_onion.png  | Bin 0 -> 931 bytes
     .../photon/res/drawable-hdpi/ic_onion_disabled.png | Bin 0 -> 1120 bytes
     .../src/photon/res/drawable-hdpi/ic_onion_lock.png | Bin 0 -> 1061 bytes
     .../app/src/photon/res/drawable-xhdpi/ic_onion.png | Bin 0 -> 1222 bytes
     .../res/drawable-xhdpi/ic_onion_disabled.png       | Bin 0 -> 1501 bytes
     .../photon/res/drawable-xhdpi/ic_onion_lock.png    | Bin 0 -> 1391 bytes
     .../src/photon/res/drawable-xxhdpi/ic_onion.png    | Bin 0 -> 1929 bytes
     .../res/drawable-xxhdpi/ic_onion_disabled.png      | Bin 0 -> 2313 bytes
     .../photon/res/drawable-xxhdpi/ic_onion_lock.png   | Bin 0 -> 2176 bytes
     .../src/photon/res/drawable-xxxhdpi/ic_onion.png   | Bin 0 -> 2581 bytes
     .../res/drawable-xxxhdpi/ic_onion_disabled.png     | Bin 0 -> 2984 bytes
     .../photon/res/drawable-xxxhdpi/ic_onion_lock.png  | Bin 0 -> 2880 bytes
     .../photon/res/drawable/security_mode_icon_nm.xml  |   9 +++++++++
     .../photon/res/drawable/security_mode_icon_pm.xml  |   9 +++++++++
     .../base/java/org/mozilla/gecko/SiteIdentity.java  |  14 ++++++++++++++
     .../mozilla/gecko/toolbar/SecurityModeUtil.java    |  21 ++++++++++++++++-----
     .../mozilla/gecko/toolbar/SiteIdentityPopup.java   |  17 +++++++++++------
     mobile/android/chrome/content/browser.js           |  14 +++++++++++++-
     19 files changed, 81 insertions(+), 13 deletions(-)
     create mode 100644 mobile/android/app/src/photon/res/drawable-hdpi/ic_onion.png
     create mode 100644 mobile/android/app/src/photon/res/drawable-hdpi/ic_onion_disabled.png
     create mode 100644 mobile/android/app/src/photon/res/drawable-hdpi/ic_onion_lock.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion_disabled.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion_lock.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion_disabled.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion_lock.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion_disabled.png
     create mode 100755 mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion_lock.png
    
    diff --git a/mobile/android/app/src/main/res/drawable/site_security_icon.xml b/mobile/android/app/src/main/res/drawable/site_security_icon.xml
    index ac8624f861ad..f5f4c7775110 100644
    a b  
    2828    <item
    2929        android:drawable="@drawable/ic_search_icon"
    3030        android:maxLevel="6" />
    31 
     31    <item
     32        android:drawable="@drawable/ic_onion"
     33        android:maxLevel="7"/>
     34    <item
     35        android:drawable="@drawable/ic_onion_lock"
     36        android:maxLevel="8"/>
     37    <item
     38        android:drawable="@drawable/ic_onion_disabled"
     39        android:maxLevel="9"/>
    3240</level-list>
  • new file mobile/android/app/src/photon/res/drawable-hdpi/ic_onion.png

    diff --git a/mobile/android/app/src/photon/res/drawable-hdpi/ic_onion.png b/mobile/android/app/src/photon/res/drawable-hdpi/ic_onion.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..49a823823e2bfe3c3d723629aa9f91e6ee4010a4
    GIT binary patch
    literal 931
    zcmV;U16=%xP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00004XF*Lt006O%
    z3;baP000A8Nkl<ZSP8vYNoW*76n&M&^<Xrf1i>JR5)cuM60#jM;DR1R+%DoFC>~T$
    zRPd~z;6Vj(7X|Sm;zf~oaF!$r0V6>#3W5u$5OD#GNoLAd-2<uauI}odOy`Hr{QB?L
    z|8J^)SN|HIl9I<t^rJR3WG|+NVkMx)<`5gtVH*l)bSUYQ`mhwE*g?}`6w#$aCcVmJ
    zOl(stQ^ajl;jc4SLLh_f$YKB^cthK6RO298@Y@!9;wvOcBZuouGz}8V(Th18KjyfJ
    zV<kT@1?#Z}-<*-<pRnL|IES@doo>fb;5AA7p}wj#E|Tshu8blWODeHKZgQ1QvWC2J
    zG6@+qb>cN7S+XV(xQ{lRHbGIg@>VE=PL}O{27buvZK+oDJcFpm9^DXEPhLY=CX%?R
    zB^aYV{>217aMaAd&zetcHTf-@k9&+hpk){*;~EDsh6Ng)NKH<t0mIC2AT*1_Mq;Nz
    zaSM=~kP29XUzWJ)(JxDq6MBg{-jW-ZY@NtsgT==PCoAe4I#|%xcr7$W(~W}LCHUxr
    zyLcO(=ung%k5C@-_~N|8K%1k2g<=BFxZ@q=CfOhAQv&RS^4P`idXcL#+ZHSm7mOfr
    zhhMD=i|{YZH=0lu=NRO0*yJ+p-RzjQaG!EJ17DEvqR!w*3S?CJb$lou;T2~3xHv;I
    zp)9|Fz!}qoir6F{j-M<8g9LAx>Tj}aBY-6a|4N(M(avm|1Xn1Jt;8pTjG}Q&<Kn16
    zLK27kPN|IrJINR93pDW(>c<Qga+8LqtE%36ls8QiFQH*H5c9viHTM+MqIcK#5-MO;
    z3Mp+NJsYl<Pz}D?W~YFAP9t7Ib@<4;>K<NF$ZQN*#ST*wFQG;r>m=)b@}$5sTd$tZ
    zOUOlT=?<ytg6Fj+e9?0R3031R9X{z!sp#(8|ExcDkdQimS7Wc=vEpNi3;x%J$`K@_
    ztS!#b_=HkZ5rL;{L5`bZ2VbtbSB9qxf%7bMGjZKFzW#ts+Rm^hEt-%@;{McfnWR?4
    z&uR1=a@yEd&mlA5XeXqmNLE!3fA1+^A4jc$C{YH1_k^!vDz0EPhN4^*7LSk~<vAC7
    z1RXRr^IFDhE(zB&QY}Bf^HU{#$4l)mJ*3}9n>vBSlK(m9tOnXT6_x-1002ovPDHLk
    FV1f}nrV#)D
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-hdpi/ic_onion_disabled.png b/mobile/android/app/src/photon/res/drawable-hdpi/ic_onion_disabled.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..c164b8df555090048772e28489299b8e70478a74
    GIT binary patch
    literal 1120
    zcmV-m1fTnfP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00004XF*Lt006O%
    z3;baP000CRNkl<ZSP9*jT}TvB6vt=Q-ECPbEF-Fi#9~u|GK%bDiNxxmbX^EV(1eA+
    zm%u2ory`=Dm!KX*3W}((mks=0LI@Peo{Ex!WGOJ*2Sxitmvq<Ze@4$bGu~YtclM=$
    z;of`hx##@$-gEDqyOLzVQ&m;vEGsKJkjzwVZSDGGeMY(6C@|XwOxD!Y)C;@aepx%#
    z@AvPH#bVWpq8yx_o(`bzx3)i7J#C<9G<qAxeKwn|ft*xSRGf;(<2Pq#XAjA;Jmz#d
    zy=`r6<5~a(KO#K*?vf-a$0bSb_Y~~ED+hyd(vh`_X6p;HFoapi!c#dnH|Iqij$l}p
    zXYiJEcXz+h+Eq$Q?BU6g=ZYj%v0RpIO}mD^+@ZFOg{vvCBsBy>V*zuEVW^E6yRZ@%
    z(w(2F`C3{)FtKIc3`{CYA=gpf@9OG$sA)^0nOW?Y`?<a<AfL~dzhK}G8{!hnG?<;8
    zeUaN#rh-At1Sy7C-&70{2m+RVc_|!!KpDZzoJkmy<*$gPqn(|dV=P-1CO5A}?(2)O
    zzNuY?ILQV`F(7D(ieQ9Zeqw;BP6vhznOd@*o}P~w)5rvd(vBb>C@(KRL2|P*!?sKT
    z(IAJz(aVDcr3*7RwptjnX9@_;WE^<c1Rx2KLz3!^=L~nM0c?mF?&EUBL5&l58v?oo
    zP<|e4ENzIby2*&NFS=y&(Fq*%ECWOKmIb136+RD*0J(~Hoe_fDR=_L^gaGvb;tAd(
    z>{wJ<1(Om8OXS58^#aB%f?%1IFiC-M02Tt~H54|oV^L`a21~ydOW%StrJ=pO{inzt
    z$(HQ0Kp^140T@D`r7*~uUczo2cIl&JFhZb-iHY-Aru>wHOzb9_8G?a5FWH3cv&b%w
    zC9|)aq5ArI2L@b8rc83P%cO;2yQzHWfFhB|VJL6sfyUAbm<5|B5vRh<q60!wRbYhR
    zwuLZcl0Gro4>P;b2Q`9D2xKvg>Ks5@6BL??ZiXOVqv=ztnSdd~NMn#zFMV`CP#V>$
    zWD16SV1~YFeR16g^ghv%#@1#VDayY&IXPibzYfUda=n7mcqV6tAg~f0t*x!Xi=z%G
    zh|8K&QJPnpLKqJ{(JvOrD0Z3!a#f_usVUPN9{s#ml#>|qnN`A&(-x${1Id6AGsI~p
    z99J5ZErjXEMIiN;fSfao_Ik@u7Q%GlzIGZH$Z57MD%B+m{}{QRDHsIsB;F=ms~?L1
    zj4~AnxjXV?inYbZI5X6Pzf~x8P`}!Xn&KKDKB4D<+wFde&GJjEwNwhfk~F+$$1?z(
    z<8BcQ_fhhOPfRHeww-Xg8S+hd<EVd!Y#i@fv<E|>&<Kw)Q>s9t#f7<3(V2Tl`HOI(
    mcX&4B-Oyfd%^3XebpHWaOrFT7X!QF40000<MNUMnLSTY^-~=rI
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-hdpi/ic_onion_lock.png b/mobile/android/app/src/photon/res/drawable-hdpi/ic_onion_lock.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..cdface9325abf85019b1f6d424bda0cb304785f1
    GIT binary patch
    literal 1061
    zcmV+=1ls$FP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00004XF*Lt006O%
    z3;baP000BrNkl<ZSPAV|NoW*76n&LMjl_LH5mY>g8zJJ7iKFJApr99phzc6?=1oKt
    zk$@YBiijxa#f2C=2#Sa(Djp>!lRy+iRMbR>AW9Sx<Cd8zU)6NFyJot3dO8VSEa<7K
    zzrOzU>sR#v18uDsizdwXG$SGK3Zp%FKEx6qdN}fPl;H;+VhpMcg#?x&g)Ia+6T?tz
    z@bXLs2B;TTX@4=}lZJ{$6E<;v7)i`y{~E<ujwOU#KobSXnxf5E%P2gsh%xs2_|#bQ
    zZ|o}($6IS2x{Ds6G`73E)N?#n&jq7Zgsq4b4o2x0X(Lg7B&NF5GGH=<g9P)?#Vcr7
    z7$Aufv|@(kp~u71O)SGn4|-@)ct8m(#8b4O4;}2E(8Gi*FD=}2JF;j6Ps8U>3X^EP
    zT<<1u_qdxtH@9~UD$wgDM;V8Y&@wz`#+~wXB3X(4;02e{olBmg`H0~GDN7QM0t}AE
    zNOT79L$SgGYUQFx90;`9!`d{!7A}WcFo(%}iN03&`V%<E?S5PHGgUjz+P#V|F^#ld
    zj$dLp?qU(X_}U;NxKg*H6rXT}Mt4(ogs-6@oJAG(XnunAIfV<<sqm2hP1<=(Mjd8D
    zjdPkmAay_{ag7@J67?C+`xq85t)F5u<r@fQSdJ%?(8v<8#%ou4=TIXL$s`&>fKj!6
    zzXqe~ltg_9FbZ0nNA6`4V`i2Ms2MBCYT%PUzXaMDo5$Kz5~ta_m$i*xS21tOm>9Fj
    zJH)<E%c>vAXg1~Mr0F!l^C^it6n7i8ZFmgs(uqU@)2X-G<_o+bbvg6ur$y^vf0O_^
    zNp~V6b!C5I>v3R4D2ctKjdu$Kjs@Opeu_(Aw&SGqgK;=jxWX6cun7uuR&xL~V<LIG
    zviQMMX#o<($*=ZqTY#dQHzixn0VJ`G%u(3_zH@;aT#|bh-&}fuU%q<M;N|Q_$B<<4
    z3*SEQ^r~ef(#)S~)}0N8Y8oe40=f;FGpS-8^|w;W)v-vN>A&hm10-<Y+UjZ(sLNPs
    zzX#n*Y&7QnlM;eEMjI+!bYXRtEZeBR5ykne*-0H$6HKt4H&?QTS<L|?BAnEMi#9mT
    zw&Mom&i=u16Tylb&@JjGBiI;J6$elZU0eY5;rCCQ14zNhT)+bFD?^Re1Qf?t9;xf;
    z^!rdd_OovSQc{)t)G6j&Mc|{K(ooWK0V!`W*3Tkdp9HS+Ne?A}Y}?*|GN8Kn6}pXp
    z%K2R4(`745jMHQ3qS?$y1KYM;kn);QpV0|IOzFs_IJ&5H8hM`<*vWC!iv5nOq5hnB
    fo)^P^0Y>02N=DClGlYeV00000NkvXXu0mjfE;8kg
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion.png b/mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..3619725e63e473fd0a364827ef2d5bb67ff0777d
    GIT binary patch
    literal 1222
    zcmV;%1UdVOP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004XF*Lt006O%
    z3;baP000DiNkl<ZXa&t$NoW*76n!<uH7MeO3yLVXKwMD7HE}zLxPhQvTo6IMh<XrF
    z1O?H9;)0-uATCjYkdp^NK`+jXL2v^lCb*)43L2M#;x<#hnq=a1PjydKx_f2{Cf)Vx
    z*Z=R;HviWIC{{^edK9i=Q5bdDln}UuTK@g&kh?2!Ohg<9(1>yFrqb5qI7|ZXwIGrh
    zOVIoHY2qhMy){}rA7O=0Tkxhh)<R+z4LL_YjwzHKLJEsIoW!sbb5P$=H+&I>diH8@
    z3}mMk66lxd+y&#&1F!Id%LyE5wY0J&hSR9Q)@;@08RZOY?EtS3Nsjt=oZ;I{2SCBa
    zQ;i)CnMEZ!0urknIMO)6`e27l;4SMbITwE&a*IlI1c1>l98U1SPXb@TrSs9HXH|{z
    z81*037`71neJivY<?smH!62^YxgDER;E~2(n@Hdk!C&-jw`ll(5?FM~Q%zt!fuG21
    z+O~ClnL1UhFUivtxK8lPf~@;oo52Yrc$TMeE!U{e`(5<Kd`#kb6jBMkglagV>Kr#I
    z0#``3tBI<qPVgB}o}QsQgM~+2GGh!J|D^Ur%wVq&O7Iy_AV%XC|JE7d5qK9Cc;zn~
    z0?LxWDD^NXLl{u>Fwiqn35P%u%ej0u8hMoHi8nZCq-&rQY!9e_EQxL0m`CZ$?ps~p
    z0=M%KMn=sBI6YN5Pauh@42O@?a*d~TlLmnY9EPI|=o<J;nRLn3u_tf`eYj;$(1_WR
    z$@S*<F7T2BwsSbH`l-3w><HY#0y;Uz^*+LFD8zaLhiD5XyOJOe2WA8$Ppd>`o$nxc
    zvpyaU4aF_oQA;r!FAC`w2Ga)q0)ek9WGvKn!7y8JXVl=SpWVX8XadKI4qhRaOi3lf
    z6cy$A6n_G7W=pd3>7I{YvnGj=`0f7<@4bYQ=*>e-#VfueV1^{H)&^!8bvi5FGmysa
    zG6An}ALL5Veo^WPG@%<iY}PR@k!%=lW3|q=o<J)zCSZWBL&;=m{VAv?Aec3kTai3a
    z@8u^$dIHjQ`BWZcDtW6n!41WWz)-hhnbe24ap(z%_WMk?cB$(!e_!eexNnn74Ls{#
    z^BaSnfMm{8j-?_Wm!5#Y>vF`8F6IOhWk{fzzp}Nuap`BECx0ms_~TYCX<gvF&cB|(
    zRD5D6VU^nHjE5*o@gnAu&Yqrt((H=;oQ2=IPDPgqoWwMI(E0TyFbj`43;T7QiY#l!
    zaP0N+>75U#9+LY$ft!5J^D+>rTrhZuF%zg}6y#C7XFzpO_cXmScl<Xz`bR1LM&k?p
    zz$@qeGmwR+@`F~MOp+;Pamoko!Nr(`hlSkv&p@_!6*u!7{^}?gldIc;sEXha#c-D3
    zt4zQv7-ln&3%HSiUW)(Ikj4gzD|4Fyy$j}CG3?=zvHB9VCy+&{lKyn&UkNr*G&w7_
    zdJ24|em#NL5_pqU-*)BB6Ug<Z{;eR!Bq+s+7bK(ZbW}(#(VtJ1Uw`3Kg#ilibAB4B
    k-^iP{CzQ)vQ?~E_01j{9Qc^Ih3IG5A07*qoM6N<$f_UXRJ^%m!
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion_disabled.png b/mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion_disabled.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..460fd9ce372e497afcc26224462132eb27131930
    GIT binary patch
    literal 1501
    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
    DZ12iT
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion_lock.png b/mobile/android/app/src/photon/res/drawable-xhdpi/ic_onion_lock.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..1980d4181b67fda352b17f087fe6631d2c795738
    GIT binary patch
    literal 1391
    zcmV-#1(5oQP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004XF*Lt006O%
    z3;baP000FhNkl<ZXa((ATZ~;(82;9oPA5nz6;euQg+yFB8Z+&jL0{aj389g`cvF!`
    z`r@VPWfU)HA`KCZh*VG{c<_Rd;#_79O+ApP&|9<#QFl7ky?y`QbM~yYuWK)R$4ufs
    zS$nU`xBm70>;CTp)FqQR9iQQxy42UJw}-RQ#><(F_)zHLN_4P=;lfOuMM1*?Qx4L>
    zB242QR{A?pv4hKK*b^kZA09qr`NtT;7YSU6j0GjIc2FNL5O@*8S5bv2tfV=cN&3bp
    zPvJh2e<MmeMyefwE^dO4+X5~=E@xb!g$a`XlyRN>Q)uEDN6tnyWu*RXqK$V+^lDAb
    z!;C+qr9qQEV9#I6cXEmuK)XbB2KX4@{QjNI4&^kx4+}BE-w!#MQbpCRfi6zUC9m)&
    z7I1o1NM0<hZVjx)Z=4ptWOkpzJs8EV%yP#9_Yr8}1hzRr(s%H^gVSd_<CBc*Yapbh
    z@FeH`_ApWH(`^lWj>VkqT`t)3V|0!(ZLR@@S4e&xjq_vJN|J6<Xa$atPTC%Bk_Wyc
    z@eOs6mmY94Kx#IziNv}R&5@-%y!LT=$#z<cxEr8woQ$?uuo|MF-&)|DAnpc8bBZ@k
    zJ2}%1RvzVUKnE+h4koOc^sv?n=KylsMq9X(<hL;_Dr{5XORltA6Sygy%k{CEI+g}y
    ziVMEMH8qNF64;!Ka@*(>F2*rDMtwKu=+ukaygJ;#)A#2fQ!aNM8V_tF@nIbp#T9ll
    z{wTNJ*N86MdhHD8VUSm^P3*CaRBk(JM~EE8DjW#NwQvgGI~cAC(#4PW30aGA{FnzV
    zHX!Wv7pY`ro}xrqgFQWl*Ms~XPUXn8*q`x(FHz0NP}sw+8_&Bx<uBqcr^+$(sI(k;
    z;G>AV+)}4`=#?cemPnnj?to#KmdKtCEe^hiSBZ_Eu3GhsXamnhC0*Rj_?jr)k0|`X
    z=u4dE(m_IYl+Sg1pBSWPA8WX@MaT2AS+lY9Db&JwgtQn=n}u4(e!?02EyrI$jW!Q4
    zAIpr|D)7+m;^g?+$d`8I?&Q;V)<t12PyXe4RzIGcLVmDF-z30=yc}**5qWXq<K%%~
    zIj?U|kQYW`kdz5V7ttZQQY2|Wht78Bl&8S0vi3$OkDpHBqVO~q<^Fhfl$J8VB;|@^
    zR{Sz23l4Z74QQR`YxkbU%pqk~7N4O=(lDvl5px74aXp9ptRn51<>EFf?2O7ioE*jb
    z5yjhSk)&bLbWxAF3wgM%NOxwr;+{2tTex?9l8LFIz%;<;T6Yz>8?Azzo}sh@*K(L6
    zYKlkSxQ#<*W-R4#7mJJHsV+L3cuy}<dV+w%Y;cK@XPZzwx|%Z%P8$zW&t}`IrErQ@
    znkF9U*D==s=<B-5V&fa<23Iu}^$gvn0shRb(LzfCa)GvY`@H+qB{AKm0l>k!+O12k
    zX@Dx{Ow>iHjNZ5bZ<VP$7qF%QfEW;7!sY@y3l63MWBj(Mw5za%g8v#~8X#;2`8{9p
    zJeVhvG$3@q*V71ZKG={nKv*~NHlOR~uK}SE+xWVdLB2T8SxFy(KHYIV%c(TZu&19j
    z*WURC2-_zAZy&^^{AwnS&iC`r0AW1BF9>6Jod1G}V|_ov&cq_`XpWFL;dMz&x9JZQ
    zH98#p3%QlBt#q=N(1>ezZN7wQ3CkG5yOiQ+`N3aGL(HpEj<QX|<u(0*Dx2!jDVe4d
    xG7$6nT-!L#kDCkm-E^eD8FJPCe?7+@_y<=F4hiHO6J7uS002ovPDHLkV1mzyq>%ss
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion.png b/mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..c56f75fb075a9f90a84bb724ece45b1b385076bf
    GIT binary patch
    literal 1929
    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
    P00000NkvXXu0mjf_nVt-
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion_disabled.png b/mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion_disabled.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..a6828199bbe672482074fc18542880a54a9e7d2b
    GIT binary patch
    literal 2313
    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
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion_lock.png b/mobile/android/app/src/photon/res/drawable-xxhdpi/ic_onion_lock.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..83552d83e7a556266238b3d71506746ad6edb02b
    GIT binary patch
    literal 2176
    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
    Cs|KF{
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion.png b/mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..3222eaf2df95d6773257665674ec6ac164945de1
    GIT binary patch
    literal 2581
    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
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion_disabled.png b/mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion_disabled.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..d2d57df2c3bc49bf3c0751e369c45c8b57c01493
    GIT binary patch
    literal 2984
    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
  • new file 0

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion_lock.png b/mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_onion_lock.png
    new file mode 100755
    index 0000000000000000000000000000000000000000..1e352adc4439da649af405720d45fe90ac538fa3
    GIT binary patch
    literal 2880
    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
  • mobile/android/app/src/photon/res/drawable/security_mode_icon_nm.xml

    literal 0
    HcmV?d00001
    
    diff --git a/mobile/android/app/src/photon/res/drawable/security_mode_icon_nm.xml b/mobile/android/app/src/photon/res/drawable/security_mode_icon_nm.xml
    index 0b6b496b0b34..4ff728ffeab3 100644
    a b  
    2828    <item
    2929        android:drawable="@drawable/ic_search_icon"
    3030        android:maxLevel="6" />
     31    <item
     32        android:drawable="@drawable/ic_onion"
     33        android:maxLevel="7"/>
     34    <item
     35        android:drawable="@drawable/ic_onion_lock"
     36        android:maxLevel="8"/>
     37    <item
     38        android:drawable="@drawable/ic_onion_disabled"
     39        android:maxLevel="9"/>
    3140
    3241</level-list>
  • mobile/android/app/src/photon/res/drawable/security_mode_icon_pm.xml

    diff --git a/mobile/android/app/src/photon/res/drawable/security_mode_icon_pm.xml b/mobile/android/app/src/photon/res/drawable/security_mode_icon_pm.xml
    index edbd269040d1..be47d7fe081f 100644
    a b  
    2828    <item
    2929        android:drawable="@drawable/ic_search_icon"
    3030        android:maxLevel="6" />
     31    <item
     32        android:drawable="@drawable/ic_onion"
     33        android:maxLevel="7"/>
     34    <item
     35        android:drawable="@drawable/ic_onion_lock"
     36        android:maxLevel="8"/>
     37    <item
     38        android:drawable="@drawable/ic_onion_disabled"
     39        android:maxLevel="9"/>
    3140
    3241</level-list>
  • mobile/android/base/java/org/mozilla/gecko/SiteIdentity.java

    diff --git a/mobile/android/base/java/org/mozilla/gecko/SiteIdentity.java b/mobile/android/base/java/org/mozilla/gecko/SiteIdentity.java
    index 1a046657329d..f5dcb5747386 100644
    a b public class SiteIdentity { 
    2525    private String mCountry;
    2626    private String mVerifier;
    2727    private String mOrigin;
     28    private boolean mIsOnionHost;
     29    private boolean mHasCert;
    2830
    2931    public enum SecurityMode {
    3032        UNKNOWN,
    public class SiteIdentity { 
    5961        mCountry = null;
    6062        mVerifier = null;
    6163        mSecure = false;
     64        mIsOnionHost = false;
     65        mHasCert = false;
    6266    }
    6367
    6468    public void reset() {
    public class SiteIdentity { 
    110114        mVerifier = identityData.getString("verifier");
    111115        mSecure = identityData.getBoolean("secure");
    112116        mSecurityException = identityData.getBoolean("securityException");
     117        mIsOnionHost = identityData.getBoolean("isOnionHost");
     118        mHasCert = identityData.getBoolean("hasCert");
    113119    }
    114120
    115121    public SecurityMode getSecurityMode() {
    public class SiteIdentity { 
    152158        return mSecure;
    153159    }
    154160
     161    public boolean isOnionHost() {
     162        return mIsOnionHost;
     163    }
     164
     165    public boolean hasCert() {
     166        return mHasCert;
     167    }
     168
    155169    public MixedMode getMixedModeActive() {
    156170        return mMixedModeActive;
    157171    }
  • mobile/android/base/java/org/mozilla/gecko/toolbar/SecurityModeUtil.java

    diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/SecurityModeUtil.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/SecurityModeUtil.java
    index ceb33b8e3acb..10bc83c279a1 100644
    a b public class SecurityModeUtil { 
    3535        LOCK_SECURE(1),
    3636        LOCK_WARNING(-1), // not used for now. reserve for MixedDisplayContent icon, if any.
    3737        LOCK_INSECURE(3),
     38        ONION(7),
     39        ONION_ACTIVATE(8),
     40        ONION_DISABLED(9),
    3841        WARNING(2),
    3942        TRACKING_CONTENT_BLOCKED(4),
    4043        TRACKING_CONTENT_LOADED(5);
    public class SecurityModeUtil { 
    100103        final MixedMode displayMixedMode = identity.getMixedModeDisplay();
    101104        final TrackingMode trackingMode = identity.getTrackingMode();
    102105        final boolean securityException = identity.isSecurityException();
     106        final boolean isOnionHost = identity.isOnionHost();
     107        final boolean hasCert = identity.hasCert();
    103108
    104109        if (securityException) {
    105110            return IconType.WARNING;
    public class SecurityModeUtil { 
    108113        } else if (trackingMode == TrackingMode.TRACKING_CONTENT_BLOCKED) {
    109114            return IconType.TRACKING_CONTENT_BLOCKED;
    110115        } else if (activeMixedMode == MixedMode.LOADED) {
    111             return IconType.LOCK_INSECURE;
     116            return isOnionHost ? IconType.ONION_DISABLED : IconType.LOCK_INSECURE;
    112117        } else if (displayMixedMode == MixedMode.LOADED) {
    113             return IconType.WARNING;
     118            return isOnionHost ? IconType.ONION_DISABLED : IconType.WARNING;
    114119        }
    115120
    116121        // Chrome-UI checking is after tracking/mixed-content, even for about: pages, as they
    public class SecurityModeUtil { 
    119124            return IconType.DEFAULT;
    120125        }
    121126
    122         return securityModeMap.containsKey(securityMode)
    123                 ? securityModeMap.get(securityMode)
    124                 : IconType.UNKNOWN;
     127        if (securityMode == SecurityMode.UNKNOWN) {
     128            return isOnionHost ? IconType.ONION : IconType.UNKNOWN;
     129        } else if (securityMode == SecurityMode.IDENTIFIED) {
     130            return isOnionHost ? (hasCert ? IconType.ONION_ACTIVATE : IconType.ONION) : IconType.LOCK_SECURE;
     131        } else if (securityMode == SecurityMode.VERIFIED) {
     132            return isOnionHost ? IconType.ONION_ACTIVATE : IconType.LOCK_SECURE;
     133        } else {
     134            return IconType.UNKNOWN;
     135        }
    125136    }
    126137
    127138    /**
  • mobile/android/base/java/org/mozilla/gecko/toolbar/SiteIdentityPopup.java

    diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/SiteIdentityPopup.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/SiteIdentityPopup.java
    index 831f69f2bf09..df67f0a9b9ed 100644
    a b public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe 
    144144            init();
    145145        }
    146146
    147         final boolean isIdentityKnown = (siteIdentity.getSecurityMode() == SecurityMode.IDENTIFIED ||
    148                                          siteIdentity.getSecurityMode() == SecurityMode.VERIFIED);
     147        final boolean isIdentityKnown = ((siteIdentity.getSecurityMode() == SecurityMode.IDENTIFIED ||
     148                                         siteIdentity.getSecurityMode() == SecurityMode.VERIFIED) &&
     149                                         siteIdentity.hasCert());
    149150        updateConnectionState(siteIdentity);
    150151        toggleIdentityKnownContainerVisibility(isIdentityKnown);
    151152
    public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe 
    322323        } else if (!siteIdentity.isSecure()) {
    323324            if (siteIdentity.getMixedModeActive() == MixedMode.LOADED) {
    324325                // Active Mixed Content loaded because user has disabled blocking.
    325                 mIcon.setImageResource(R.drawable.ic_lock_disabled);
     326                int resId = siteIdentity.isOnionHost() ? R.drawable.ic_onion_disabled : R.drawable.ic_lock_disabled;
     327                mIcon.setImageResource(resId);
    326328                clearSecurityStateIcon();
    327329                mMixedContentActivity.setVisibility(View.VISIBLE);
    328330                mMixedContentActivity.setText(R.string.mixed_content_protection_disabled);
    public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe 
    330332                mLink.setVisibility(View.VISIBLE);
    331333            } else if (siteIdentity.getMixedModeDisplay() == MixedMode.LOADED) {
    332334                // Passive Mixed Content loaded.
    333                 mIcon.setImageResource(R.drawable.ic_lock_inactive);
     335                int resId = siteIdentity.isOnionHost() ? R.drawable.ic_onion_disabled : R.drawable.ic_lock_inactive;
     336                mIcon.setImageResource(resId);
    334337                setSecurityStateIcon(R.drawable.ic_warning_major, 1);
    335338                mMixedContentActivity.setVisibility(View.VISIBLE);
    336339                if (siteIdentity.getMixedModeActive() == MixedMode.BLOCKED) {
    public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe 
    342345
    343346            } else {
    344347                // Unencrypted connection with no mixed content.
    345                 mIcon.setImageResource(R.drawable.globe_light);
     348                int resId = siteIdentity.isOnionHost() ? R.drawable.ic_onion : R.drawable.globe_light;
     349                mIcon.setImageResource(resId);
    346350                clearSecurityStateIcon();
    347351
    348352                mMixedContentActivity.setVisibility(View.GONE);
    public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe 
    361365
    362366        } else {
    363367            // Connection is secure.
    364             mIcon.setImageResource(R.drawable.ic_lock);
     368            int resId = siteIdentity.isOnionHost() ? (siteIdentity.hasCert() ? R.drawable.ic_onion_lock : R.drawable.ic_onion) : R.drawable.ic_lock;
     369            mIcon.setImageResource(resId);
    365370
    366371            setSecurityStateIcon(R.drawable.img_check, 2);
    367372            mSecurityState.setTextColor(ContextCompat.getColor(mContext, R.color.affirmative_green));
  • mobile/android/chrome/content/browser.js

    diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js
    index d081fde9b20e..c3430f5b5a4c 100644
    a b var IdentityHandler = { 
    55585558  */
    55595559  getIdentityData : function() {
    55605560    let result = {};
     5561
     5562    // Even if the connection is secure, it may not have a certificate
     5563    if (!this._lastStatus) {
     5564      return result;
     5565    }
     5566
    55615567    let status = this._lastStatus.QueryInterface(Ci.nsISSLStatus);
    55625568    let cert = status.serverCert;
    55635569
    var IdentityHandler = { 
    55855591    return result;
    55865592  },
    55875593
     5594  isOnionHost: function isOnionHost() {
     5595    return this._uri.host.toLowerCase().endsWith(".onion");
     5596  },
     5597
    55885598  /**
    55895599   * Determines the identity mode corresponding to the icon we show in the urlbar.
    55905600   */
    var IdentityHandler = { 
    57045714    };
    57055715
    57065716    result.host = this.getEffectiveHost();
     5717    result.isOnionHost = this.isOnionHost();
     5718    result.hasCert = !!this._lastStatus;
    57075719
    57085720    // Don't show identity data for pages with an unknown identity or if any
    57095721    // mixed content is loaded (mixed display content is loaded by default).
    var IdentityHandler = { 
    57575769    // hasMatchingOverride does not handle that, so avoid calling it.
    57585770    // Updating the tooltip value in those cases isn't critical.
    57595771    // FIXME: Fixing bug 646690 would probably makes this check unnecessary
    5760     if (this._lastLocation.hostname &&
     5772    if (this._lastLocation.hostname && iData.cert &&
    57615773        this._overrideService.hasMatchingOverride(this._lastLocation.hostname,
    57625774                                                  (this._lastLocation.port || 443),
    57635775                                                  iData.cert, {}, {})) {