[Tails-dev] Testing the ISO Verification Extension

Delete this message

Reply to this message
Autor: sajolida
Data:  
Dla: The Tails public development discussion list
Nowe tematy: [Tails-dev] Distributing the extension Re: Testing the ISO Verification Extension
Temat: [Tails-dev] Testing the ISO Verification Extension
This week I was really excited to be able to play with the first
versions of the ISO verification extension for Firefox written by
Giorgio. Congrats! For those of you who didn't follow this, development
versions are available on:

    https://maone.net/dev/tails/download.html


We tested it with tchou and here are some comments. I thought it would
be easier to process all this by email than on Redmine (we don't have a
strict policy regarding this). I'll flag issues as belonging to either
:maone: or :tchou: just to make sure people agree with what's on their
plate. Feel free to counterargument.

We also published an alpha version of that page on the website, for
testing purposes as well here:

    https://tails.boum.org/install/download/


But since the time we synced with Giorgio's code we did some changes, of
course :) They are visible in wiki/src/download.inline.mdwn in our main
repo (5c97222..926f355) but we'll comment on them here when relevant.
Giorgio, I wonder how we should do this syncing; as I understand that
you want to have some test HTML in your repo as well...

1. We tested the browser detection code on various browser and it seems
to behave fine. I heard that intrigeri had some issue with his but I'll
double-check and report.

2. The extension is great because it preserves its state even if you
close the tab. You can open it again and the result of the verification
is still there. Still, I think we should reset its state in some cases:

  - When the download is finished and the user clicks on the "next"
    button. :maone:
  - We might add a "Download again" button as a minor option below the
    "next" button, with a link back to the same page. :tchou:


3. Regarding resetting the state of the extension, we were wondering how
this interacts with the Private Browsing of Firefox. Is is reseted when
going in and out of Private Browsing?

4. We looked at the SSL information embedded in the code (conf.json) and
there's the fingerprint of the certificate for tails.boum.org. According
to the specification on
https://tails.boum.org/blueprint/bootstrapping/extension/#index5h2 it
should instead include "root certificate of the authority expected to
sign the certificate of https://tails.boum.org/". We don't want the
extension to break when boum.org renew their certificates. :maone:

5. In 2cf4737 you added a class to the <html> tag. We can't really do
that in ikiwiki. So is it possible to move this somewhere else in the
code? Maybe on #download-and-verify? :maone:

6. We changed the user-visible strings about the supported browser in
0e7d362. I hope this didn't break anything.

7. We added an alternative display between outdated Firefox versions and
unsupported browser vendor in 67f4e01. Giorgio: do you think you can
adjust the sniffer accordingly?

8. We'd like to change the display of progress information:

  - download speed from Kb/s to KB/s
  - downloaded size from MB to MiB
  - displayed ETA to adjust to "1 minute" and "seconds" (keeping in
    mind that all user-facing strings should be in our HTML so that
    people can translate them)


Giorgio: is that possible? I guess we need to embed "minutes",
"minute", "seconds", and "second" in the HTML.

9. There's no way of going back to the previous steps using the "Back"
button of the browser. That was no specified in the wireframe and we're
wondering whether that's needed at all but apparently, in other such
scenarios of step-by-step processes inside a single page, sometime the
"Back" button of the browser is mapped to going back to the previous
step. For example, right now, as the extension remembers its state,
there's no way of canceling the download once it started (you can only
"pause" it). But this particular case can be solved differently maybe.

10. Our wireframe didn't include a display of the hash itself at the end
of the verification. We're not convinced that's useful and will probably
remove it from the HTML. :tchou:

11. Once the download is over it should go from #download-button to
#download-text. :maone:

12. The "Verify ISO image" is a button but should not be. :tchou:

13. The #download-button-size is updated with the download URL once
clicked; but on the wireframe the ISO size remains displayed. Granted,
now that we have more complete progress indicators that would be a
duplicate information. Maybe we can empty this completely then? :maone:

14. When clicking the download button, we're proposed an alternative
between "Open with [Archive Manager (default)]" and "Save File". I
understand that this corresponds to the Content-Type sent by the HTTP
server. But in our scenario it doesn't make sense to open the ISO image
with any other application (as we want people to verify it before doing
anything, and then mostly likely to install it on a USB with special
instructions). So Giorgio, since you have very special powers on web
browers, could we do something to propose saving only? Maybe overriding
the MIME type or jumping straight to the saving dialog?

15. In attachment you'll find a patch to change the Tails logo from
white on purple to purple on white :)
I hope that's the proper image format. :maone:

That's it for today :)
From c8e05134d0481aec44dcf2b3ddbdf9da63bc67a3 Mon Sep 17 00:00:00 2001
From: sajolida <sajolida@???>
Date: Tue, 10 Nov 2015 14:34:14 +0000
Subject: [PATCH] Invert colors of Tails logo

Use purple on white instead of white on purple.
---
tails-download-and-verify/icon.png | Bin 4627 -> 3301 bytes
1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/tails-download-and-verify/icon.png b/tails-download-and-verify/icon.png
index ccc59e0913c769564b30e342b741c16f7a699e16..0d64b7e0841c8ee82ea5042252334fe7359c2ecd 100644
GIT binary patch
literal 3301
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

literal 4627
zcma)AcTiJbu)f5El7x;(uhNlTrG;*QASzA30MY_V6Zp|W7o;O92%->r5d}m9=_LV_
zCRGHa1nCxf7v6Q|{qz2NGkfltvvcOmo;|z!eR~tkObuz_9B=>tXwld7Zh~{<zd=n2
ze!Das`@o6vuCbvWU<oJyc!iFw>!60l=h|&Q0H7oO8x$E5bey1)${&r<r<$c=VY#eg
z9G+bZs<_?Ft^IYqJw08#{J|vv=ss|9^mlRQ3v~C#@fo5qX3kPBQ~<yjh}P3K51RUQ
zC(!Pe6=%2?t9-8|)LcOvQUDSEY_>j&IM9I|xLLeU3^jj0F}`o5Pm1NW+*q|zs~k_9
zXz_{q%;5Z)iA5X5cW@%e<cE%CV1j%KK6{cQ@$uz~>YtO`gXWc%F}8XO1?u;#l5$Wz
z;QuQxs8btx2^lep_zU=X@;A%%+R}9Cn(zsV&L_ff)I9FO9Kh?pjq7SS%P(S4=azCb
zxCP@&I~*fQzNBkGI>~F6NbvvwK~(2)H#N9DW>`M#OHC+e`H<A#5Z;sM2-uaP;Rq9}
z&O~7v)Vy=dFvSS5O<FXrHD3zglRn|b<(Dbk5Ir?7xE7TaNhtwDJ*71mI)!jI)w$YT
z4^B_GmH)h>KorleZlI^I!91*h@i6Cn57^Y#$9hMmv22wm+*YZRhSZ-WP+~?`k7E~0
z>&l9Nhk5|5B_N+kt8G6gm3+@V;hV}uj;NeVg={~J&TMZ2I%ovJmA+khqGvvVXLVy5
zwkGXYtti9g?T3g5e&i4J4w55EMV99ManQHtfAy9tS>dsHL2unyBj>L1#)t$H&e;N2
z*LR3g1C6n&j3|pTzHL+Dt)JH6T<;&pCBS%tzx^qK@yU*g8GQiCu41V^3*<Hcu*Z2;
zqQVcRo@mFX8Iisfeq}q5u>*31reS09WJOs`izB(m1Fnwb=y2ScLy87xxHfv2O6*d5
z!Pp`MnX;=#Obd9F+e$|Ru}JW0dFAlE6EdC2qwDG+H9FRJo3i5b1yLh)+85LWC7duW
zdBD(h@nl@&hNX?v=vPFad&c0QHnWC|!^{1_pbU6qi92I9)5Ei!wi6%!do&ssh9f!I
z)*O!pKQ$cu*%|5qGE5><dFZ=KD0@x%UT@VZ)+mxnx@sM9MOH~#W;;;Ac1UFJJz49u
z`b%qQRpisTk8VvIJwV8@`hB__!3^gLI=Pz<YW}{?1Fw9oB<v2Dd?Q#_C(;<hOw)Gd
z=Ow3rXw(Hk4aqr0_QKQ9iJ<Jm-Ee`->r*MuWvi%n0>l77R9v#-L$TJvO3U-2?Z4Y{
zQRWwq;$&+>9M|?~$h5`l<N!-eFT0?E>Lfu(nM<<IRRxIcg|4kuf;B&akH$(m6#8f&
z&gIrq4o#};qY6gg3U|{Hj84z#p0IYhl~c9+>O&I*YE-cgYV+-dHW-$TW&kF-{Y7Cg
zrv!L~7`pG!<c&YG&Cgqq&#o~r;^Gl9G9$WQ-iopPUb)h0iM5pSW4F%88yE^r(~4-!
zhgz9`Jx?bB1Z$S=p^X@Q+iq>Eyhqz|`6dW63nU*4+}F8B72mdg*(lL?36WZbKu9c#
zt6!vnteXH}a3<${4^<^^=+?49Wi2VjsUcN)5y=*#`vUTcR?91PJXB}ex*54&@)H0}
zWz=rZ(zJ*UJ$@%=Y-H#|u~6py9KLCY`DnjzkDCDQGmjoNDg7w8$Lq~-%k@w>(zquD
z(YTGYAd0u@&nnKl3y?CSV*e!81o)~H{1)y##S?dVY-)3>4rEb3>ewo?8mYu+ZjWqH
z2$f#0WZFgg7iHoVFnyRmO3VrdCsJ>ovG%3wnO#Xwf06_mNS+{xF6)}hGZq#0k&eU8
zRy8``OwFnK;FW(_e^G`~0I01K`bl<wh}PdA?M_H_#V?48of5<n+4XZ=kj+bv=V}Au
zS^b_dllHisu<_;1f6iNelXLBR=tBRUY*|!*aVI{m(LuLNt3OAfVp~(`5iOOKT1wjT
z#v54md!>%<82N?aq3pGTB_g0m1F`*3+nrhH=Qv&An{lApgm^~oLn8@%{{A1WH}`NR
z*hyYVR^yj!Hx=mlXj*GD@7vzC48GoEI)Fx+@!pN>VAiN!H`Llp*<-K8j;}!aIh1d{
z{TE)E;%*S`??0=TR_)$DsLreg#w8FDJB`4C*6E!^T0vbw4TJV;$jC$(pK8<fUuo?f
zZ`$OQB0!5ft<;3Yohb(6?vP533_a|oTs%6y;_R_nP(C+@p}gi4T0c73R15Ur@rztU
zd}B`J($oJ0HO1>v2b6c7`vi00>zoA6Lc^}Ks?}283AuWWByySZFn)#pX*GU?C%Z`O
zf%++!1`~rwQtW7;R@2+USOu(GtHtr$E=k6!A>><3-y$L5jToejJFR$HBvFFUcJ9JR
znYv*BHH(_L&**-B`iEzSpT!RLEF)9Uzwh=;+wp1boGn($yi@M+QSGa+TjilM&A)2a
zHYKeU<*A<cbd0q}Wz~78sMvkjr$K=sUNSIHd~LdZ&5G-ASy`2puzXS5Vw@6a@5=EN
zPgqVd(ab(PTs2p3;6VV@UXD@og0<}n)uhb3dugK%&UXn{wC4>eR<{_qlsJF4a25al
z81g&4Qx=6Wv$RRIr^DVbLYaMg;9L~H&S;dV>EMYH{UE8HnBqsj;OWJ`OB=x6`QgtP
zSBIf%VK$*=8IGE0SYO+47|!&~dWQohnTqY7gy%eI@N(F7x2#c3)WEvCtCDkz`1aB8
ziJ_~JKdrpY?^0lelIWUPnk86y1CqcOAbe^{-;~6xha)7M?yJi%dudF$+aqOgI)Rlm
z*>uc)tz#j1`Zr{16*`k$bgQ>eKvxeXlopnAOaA<Jmi<GE(F4c5-LUwuCk1-3@)3Bv
z1djrytAB(Vb05P_vCeUB)_r7%u5b7;y~QT`=FvVZYM(o2F=z9mkB@tY%wFb%@Zs<0
z`XD0di(9X2ysK3SEmP;oaDvE<Zf{C%3jysPCH&g*cXhL89G(`4Cg)6ZB3gOwyx|^*
z6NyaI{0q9J^S@l(wMTMWhAAerH6cR^$eo?Lm8BAt1$=GPB06UssV+UFM}}N>Hlkl6
z#AW;ARXAyYRaIi_8o7cZEqu_U9x7f3C}0-ToRk?9grI0&_T<ZttJ>%nXW`@(`tPao
zR8ouk#kk7d=_D($Dt*g>@`RDoQn|njRe$%`z}>hdhZNtP<FUg)I<}R!Xl=sJC=3YW
zp2n&C(uR#zW-jC;xG^!WSY*jzX^cU=_2STGo?z)$`g5_*w$zM`N0PV~-H*{cimW)y
zkdjgZTRSm2&E1&NvF8(v3~c%l<sprMq{-8z8(UEfi3KwMnR??tx+iyHirs~t$M$HV
zJ3cNdYu{jD^=7v%e4-ej>%thHpvv1-5|V$=JD7|r1>F$A)fDB|<NaCa&V;1eyG5=i
zi}DL?cu}x2H6D1T34d^%{BW78s&;$BfWm_B{#Sb$IoXG95pK{*wzy@_%Jt^H+bxW!
zM{glPyPnb*{9(XLHQ(1$#6Eb#$kPW54FM32Yz~4;QwcSQBc8@-{BJ4yG-B7PbX49y
z?*1K6+OhC%VYcr^g`;a&tdU)00?b~#B2UX-ZIG+EK<4OTeDJemf><aK!;?IKtWk2l
z+DsK-e&Ue%98n{&3N?*2P{_LCRt!g35B4wSsrnq%YGN6i2k}XYXD6hkB@ioiCQ>?!
zq)%i=sy^Gp%%vGLKOQjsC#g2ecg!PU0kp-*=4f9Hyoj>8uE?!yoM>Egk2I9*<fbbe
zeD`P&P5w36*n6S3>s5TIsD#8<DT<eLDeb@a+=yakATf(h>o@58Z$i9J{-63^B+-hh
z{pTHndE_R0v-a~lARxmV_eHinV~*FM>t#$(j)eF(xjKc;IJ1bL{XomL`?iWsZ9$_w
zjj^z3`k~BV$x11j7UnGzwV3uS!%x<0m!f~9ebbUki#fl~m9n*SY~E)m5&fe9S((KV
zy+Z#4h<|aj^3V}Z*<03I{yO2vuUG$vbMv?+2s8Vym92lZ<qdOqHRLI`PAT1RxpQ@A
z2VUd&o8Onjm_&-UpGWoEs5XzJ-u<pX4U(F!#PU#v9np`o@W@}2W1+7q!h>(St9oJM
zA&>gv!VHHOkgu1QeKy?F43!seWZ4(t+a!v7&pnXv?WFk`3xG8#8mx{gjZ^&FHb@ZE
zLCBF^Oc5F<&58WsJI4%Eq#Gw1`R>gKW+{3-Wc93cp7ryHc<2fzKyCywKhA!UWXj{&
z?ph1hK%gp$8>~3Ax7UKjj|RbFNmMtAd;MG^=&D_oEqkG@w}{@H@x%0lC>@AO#I{o5
zM~k}WJvtl*Z`E}{Z1wp)VkE9xwgmz7xHWQTFp)`awjeQWA6@9Iji6#_l`z2jR~WU*
zOK8vs3KT5N=mUbx7uYrf7Bs2_aU5{ZD-z<7aH1w!`*hU2A*9a58C|CX0FQGr(sC{p
z%&&S-Ir(W?OTu3@)<=~WGxE$PTcOECU<#d|9We|*Qyj<pxwxck7aF5?w7!}Gk!7iy
zvu#7e9W9DT&b9J8K)@_7K_Dqmgj{}TQ?=k_U27X)QL7&-G|9o1TI*=Fp+BFInU#_e
z&i}x68dnJ`Lj`9u)Jqw}kP5yG7Q+A;{Cgv8zh2VB)-SdCV|<Aj9nVa>es>QfV~VVc
zW`BFW$EM2eonF?xJnq4Wf))G`63`H%dW-e!aIGb3Ue#Eu8_OS=YA^RQ?zh!~7rO46
zXW;>`Nf3M>Hz!w-<B?-+WbU`}pbn&`H?htO!*7Bbg6d*(TT^jrb@hUxiA<O5CK3+=
z3S~aGiS*~NeGRXkl=NR)12n?8^}b`i#Os!LTmtw)0yk6I^4dE{bi%B7GZq-gP$oaT
z)BCY!-TjHo!R+l)xx3=IID>?UaH==3c8LZFLCP?M{Z^>eIUf4j)wSAFZ2i#D$&KdH
z(1)NP!PH?amWS*6Pfeyjg-m3jVd4bx4xVfCa39eedXh_x66<jM$WSk>0mF=fph1yX
z;BeoSdgzRs;ZlZxaurs)xvK4YhDLM-ZMa}q5dF{iqDiE4ue+@=lmO%!wCZ`>RRSR$
zbP%DiC*~lME(jzt2}7f#1J#Bp$KQ=NHfhUj$wD1VzVqLP*o8>N@nJ7bpajVxVdoCF
zED7Xcfin%5POs}V4!bEuC9ZV6tP_;ANg*0X7l^7fA-+s@v(S4J(G~{dZe~t1mgCcA
z|IHn_;G8`s39jZ~EY8R?>@ijzpZciZk>cQhrYcQxDN#WTIRzr8bV@1U0E2~o)wJ>j
z?1ifg6rymt=L5LQ<6qjBd}ShHq=ltcOW%o$rm&)PU;WLH^?z4(^Y(W)fb%5~#32Bn
z%*#*r^0TWwTuq?_PgVkC;)-N7$Xv?5t}s&c)&c4`4&-5@b?ZGj%Imv)kS|IIJ{})d
z#M4XrJu`KJ<Fh<*)ToqI*#_o`IFm;;+5C)=l0Vvl=`n^I`yZ@Z+&IAX<sKJ@p<{X4
z@V38xL8Y$we(O8)c4vPnp4dAJ_-s5JYUM1;&o8Tnu9(hrdK*@i@2RfuxthTayN|8e
z)LBhm*?J(iA|BcsM!`)D+=~G5f)$$cwHW@V>NHzZWXNTH7WmfOpTR|ae~#r!b_#9{
z9)4^NNY%i;_3?|W6rnlOvUfC4er%T=$_30}S<oeR>eEc*x*K5TvGggoQ-RG?MT>~N
zu3&3NBY^&*kn;3Iihtqu)n#wC;>;^w<BXaOtO2z3w-@|A)6lJKh)#1R4ZxuIG`BVc
zIuokKNUrOEnH!K^uRYSlbR8arJ+rx4;!eB=n(DK^s(4xbdQazkO<nkCd<j!kx)ec9
zvND;mA)vYc;KW^R%Z49(gIAmk3M?9wfda&PNr=aKAQSnCji8jyEpc2YQ#_bMm3R{G
zrGUqs{qSr~4vPglCD~cKf;XTNQHEsp(>%>Y>M(QO(!-{W+mP!l0jNoJF9QR`{}CL!
zibAir*~Y{f;W8A3_!N)J0m`ng`OqcZeagr$3s5lruS8`ood0w-YqQFIWBl*m3|ik*
K@2!qQ^#1_V8eua4

--
1.7.10.4