From 960d6ad19abee5e142f01f81bce53d72538466f4 Mon Sep 17 00:00:00 2001 From: Kathy Brade Date: Wed, 3 Apr 2019 16:14:46 -0400 Subject: [PATCH] Bug 29768: Introduce new features to users Add an "update" tour for the Tor Browser 8.5 release that contains two panels: Toolbar and Security (with appropriate description text and images). Display an attention-grabbing dot on the onboarding text bubble when the update tour is active. The animation lasts for 14 seconds. --- browser/app/profile/000-tor-browser.js | 3 +- browser/extensions/onboarding/bootstrap.js | 2 + .../content/img/figure_tor-security-level.png | Bin 0 -> 11263 bytes .../content/img/figure_tor-toolbar-layout.png | Bin 0 -> 10569 bytes .../onboarding/content/onboarding.css | 59 ++++++++++++- .../onboarding/content/onboarding.js | 83 +++++++++++++++++- 6 files changed, 140 insertions(+), 7 deletions(-) create mode 100644 browser/extensions/onboarding/content/img/figure_tor-security-level.png create mode 100644 browser/extensions/onboarding/content/img/figure_tor-toolbar-layout.png diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js index c357fd4f35ee0..1326eb4ac8436 100644 --- a/browser/app/profile/000-tor-browser.js +++ b/browser/app/profile/000-tor-browser.js @@ -329,8 +329,9 @@ pref("browser.download.panel.shown", true); pref("dom.securecontext.whitelist_onions", true); // Onboarding. +pref("browser.onboarding.tourset-version", 3); pref("browser.onboarding.newtour", "welcome,privacy,tor-network,circuit-display,security,expect-differences,onion-services"); -pref("browser.onboarding.updatetour", "welcome,privacy,tor-network,circuit-display,security,expect-differences,onion-services"); +pref("browser.onboarding.updatetour", "toolbar-update-8.5,security-update-8.5"); pref("browser.onboarding.skip-tour-button.hide", true); // prefs to disable jump-list entries in the taskbar on Windows (see bug #12885) diff --git a/browser/extensions/onboarding/bootstrap.js b/browser/extensions/onboarding/bootstrap.js index a90bef0faaa2e..6eec2122ce2a6 100644 --- a/browser/extensions/onboarding/bootstrap.js +++ b/browser/extensions/onboarding/bootstrap.js @@ -38,6 +38,8 @@ const PREF_WHITELIST = [ "onboarding-tour-tor-security", "onboarding-tour-tor-expect-differences", "onboarding-tour-tor-onion-services", + "onboarding-tour-tor-toolbar-update-8-5", + "onboarding-tour-tor-security-update-8-5", #if 0 // Firefox tours. To reduce conflicts when rebasing against newer Firefox // code, we use the preprocessor to omit this code block. diff --git a/browser/extensions/onboarding/content/img/figure_tor-security-level.png b/browser/extensions/onboarding/content/img/figure_tor-security-level.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5c221c8d8ec64a30714f643423184d5aeefc7a GIT binary patch literal 11263 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 ck`U4nf`kOK#Dg9{prlV}VkNWWiJmndLZy^A zMJwlZ`xVc{z?CeYQ4NV7CaT7@i>h}{vKNouMTb_lc}Fj=S^J=H6Cfz!0BYEN3l|$( zU?p@Z?gN6+r}W}Rv+QSozu#VJgVpKf=^DlB*L~iX6CQo%Sfg?U!b=1k-5et|pE%(s z6GirngeJ}7o0gC!r|3&%aYDhD-13S~Li@|RNUy@wm@SjYxwXSfSbq?RJ8@J$lF~YR zICpDZYu6mG>eWVb+M;YRj@G;t`IPNmNYny}K?};njLMJK28`||*I9=?0GhXhi zx-AbHFN;pkrNnJNYaE`r=}LSVVMa?Ch)&?qd4Bf;)?s!W3C-eaQjsqW zik)}TwD5)aH*V%1KIDOnE-AZ-ZLP<3*nJC;@n_RgQD@yM z9?mEyRNB?u&Bkv?LnX~9(h$#GH~mI3D*haJ53qa0Q*jZ!%fG#C|Byyy7LhlQ*RqZC zsOOn&U*aLdJxtf`l%pR-a37 zGVpa?hO$<;a7E6tTk@#U4>o_)mo9f0%M$j~P21Qq^5l68NF;^L2#vUan^<|jsKD7#yjVs!>= zxTK1^7Zkv!v#Yp2jegpj9}*E#v4{2Ec*yphX~dwODf6>o={~mQ#3i&qlqxi|6Q~@M zUtQdE^om(KABXZoaG<(S0R{1gc9TyGJSBOo)q<`5HP0&56hucD7(R2L}=pYdV!zT8Z8J6@t@km zHvFkRzCP99!+BL<-><~cj6+iaXiCN0!OyfQ!p=M0OL|q)Ef#f?&=#R@Io4IBP1~>q z8Y4I9BsN;e*q@>2tG1MB@8m2)t*qS->if#g367YN1k`s1&O}EuYP6O9vGS@a!Ct4~ zO(e^6p7aQY{LF0cH8Tq#ZV8WPY7%<0uGG0>l*^bU$o*j_6viRai675or*-}Al}yKx zCoX5>2b@4E{Oa6F3C9O<-U)%!ZDb5Gh(#!$oFO*P`p*`Ej2^HJalJ0X)RUpD6G;v8 zm*wVAyizzU0i@Gdoc5>o?@-_dexNtnoCypol2SSs-!I8xIu7Pzl4KR-+7*4=Fnw?GNa)YOu3T->jqNWlj0*3>IlTDGUgz$mKc8 zdo00#+wgs3f5Ep>ls!Z1>b?65+7)NYuEs-RQ zjKArem`CcQUZpVm$wK$ZpEiM0N-e|EiDN_8c_-&<)T*59+yl zsW-pdG!uqWK9~FT*x6CLRaNfbND;=eppL zY|-#PGKKjRko3xB(UEW_@USeTvaGSuIDTz!tAKVb|IHG!6C9R~o{inAwIAxfyd-Mb zo0$;Zf!O`ysQd8!%}&$T8;94^)ku>kP&Ng$QT9ADzJ=co)<0!B1*tYpn4uf!W<1xA zWn7(7>NBq=vMydD9?wC8baus)-zJuFr~8TF{`&OMVmi{4uXN@~p|+PDTsKdWBXsmV zq=w%)W3kp$_9!SVojS0xqU!vU(dyJQb6qc)Hw20>XI`AdPPd>fC2=^W!GuquY~?~E z<6`e6t^USyc-I|h3IZOn6>6lX7Al$gVj6`xwj?q-5h*TLDa6)TNP(1km?7VyIluF` z8=smOw4nTQ{+Q;r-MDqFytfZTGec_no#zDE$|&W`dXjz(*WNEI(5V!`t&e4c=HTOS zO%!pZ|LAp0#U`2*zf`d+nK^J0xp4U~hxlm(!_eV;zZ@U|U~-_MntF%WF(z|{@wK}? z0k%xrrbV}qV)5pzKm(hqTI5(bAT<+d>hc)I$776Lf`U6>i{iPYSXzpV4eaDI%(2X~ zNd44n0XWVF@~m3Rrq&lJj8C$WY)Y_3YUvrtY%9+$NP~o=Gg{=w&{L3yqFJCsYiDou8&s$pPUJsOduO-?cs`wDud>6LP((G2YbpaiRn-R2ZP9K7q zA~7ATI6Me=EIQ38(ZNPbYQ2AfgpF!JZGp=b*Q`|(ibl&rm6pDc8oYZlw(wM~z~q1? zRpR9g<0j7vYd*CXzbPIxm<3@rl)_w|mvcxo!nH*%RdCnpU~Pq2_X{IwO%S>g>TI|w z-sARICn;AAL$|3hINo7q`&}sdtqcgV3`e->me#pIL|K$nYJ+d{*em4kgn|Xg1r36- zWuhNc>`Cg1nERG#Yt)*|dA#*7wep#f>b7<-6OK4WfFQ)IgPZ-mX%)7|qvAi!B3ZI? z+zD(V%ss3WFH|jP+PK481886vfdKoGo>%$tHs)Hmg|~3CuD);cs~0{D#(@chfyOKw zG(J)KVyxrG+3QQI@^ZAjZ$eLWTf%W1;U?PP3aOsriY;BLzHb@|cRvodqP%R^nl%di z?qF3E;#f#vN-Q|2{XVx(Tb@E%>ft7p={hmmdd_M>Lct<{gdf$=n^i`g@v%i4hR?3X z=yR*sm>(*EAqaQ~WPPr-Off>`d#^~#%NCTky`ukA-u#LKcW*Cb84m}h^c06YUObVV zqv)RKQN8|n$~60^c$+MYr#$@bLEwLuT@!c8)5)vEbi^h(}u7M3m@TI zYL&r^Vv12$G{zVX!426P+j&- zbQfTn-Uo|ABE@H={#RQ#U&)0kLUJjKtv?{|={yR>hiq#!j};TVU;Qc2LMP$AEh*$! zWtzmy0t4a9P?)IGK6ae#Q?P7{%@GX<$k)u2QuePS|7H2i94X>1itZ@c{PxSkhD8C+ z3*f>zMOH`OL4AFFU|L#QjmI0MZ>p2Cv+sZ~ykZjh4TD6&n^8lPlU+~CYW!WQF(vhf z-P_U8(cVJf%+wfqX>cIA9QvH6P>_|C^(Kf^$~uZ;4cMksv>S|U4`MJyH2;7gg^?1= z?672$gK@G1fxRv?6BJ04HaT=9>->(@GI`NTXUqTxkz%_AyCfhq8bK5AVvdenIHm^D zvvR;2^MoA&!U6Pj1RvNc^#;mI2<=}4w!=xma1fXP#<@HGF(o@xAM@?z2TLC1;yno9 zr9fDyqN*8c93deTng3Qgt0|=w7fYo99DpO3rpfderQV&HRB)O(m>#@kYvV@M?gOy_ ziw4;#tEn<%Q}g<{#8Lb5L6gOI18xQ4g&?)fytu?SlQX%@jJloecsrUO-YOvnAIvlg zy^g(}k6F}gy6;950ojVSW(j5jTn-BjLGVtKk9kryJVuVr&-;Z&hIae&cC-Q~(JKU; z=Sdr4-c6WC5|j zvmJ{G=w;hv{`U9xYoQk1^d^zc6t_x~v&LR+CVT_q!2{&b8wsp$8RlMt-8qQ=zh%&vB~EVuzR;g2!VlNHV)+K^ zV=~@aACfDQ^;IGoKsXmNlcD7#YCkL)97~7jp+`n|Up*txeW+RUU&vZe?0cVdXqQ?9 z5$GyEWcuGCB`nL)l!o+T4x22D-T zOKYI0bKjvfsInhoO%t|?PI=@|+tt;j#JjxsB_I1>h`6xRqi%widG5F7;NHPp8yNu8 zF5pj(9LRHXnHL^~@dQj5`>S7`RyR?l<%QMlo;TKsft5}RQZMv>$TNsJXK@_;`}Z%-A%oWw{r+j}+C? zL<&0n%{cBCDZ`4|;4C80oM?o)dX(o;U({2)eJ?-1fD}nD*O*T)IPAuY#=kD}FC1?O zD@As57GHi|x9Y1^pegF^R>8ipisHBDb=;cJJ3dq1560c%GG?$g{in1D1ygf4pKj|P zTpkU?b8b)Ytsd}9ORLl$^}8ROt=P5c=&6%OQ1g*{d3n8G`yIydnR51o=+qp?pxzUE zHeTH*KR2?6dqiGM@6b9}I58ots&sJFrz$0p{{KcaDnFopaqAlLz!=SFVwTjn(J6I-lVJE5TGe!Dul z;N;7|JT`Rh-BF)eYj9Xa*>#}jzt!XwRbF^PPdiVB+{?lfU!HScQ*d_p#mB?RujRw}_kyA_d1DfiKl2B_h$=jML5nbv-wWH!X-`(-| zsCewqu=5QsS86W4&r#pwR(GNw5?y|0dRoJFW||(V+e}{a)d~d0L=l!1{$_DNgrU(x z5QQi@b|K;NOpTW&knqM9Dcsndxp2< zGh17?9L_`hN@O~bA&kl{etz_bVEimLX%P=VlWwRpk==BKO(1tMvhGx$?w#~R4>k2S zGFFAqQr{iB z6Ol~Ck4HpR{F7r%cyr}+KgGd-GAExx>DcfYqon_S3x0d5aDF?+^k-YtV?Uh*+E`=n z*UT$e9;5t|4tjssEMZT7|4{N1;`_FDJiWVFG^5-^e5nX1GJk39-;Sd%U_FJSV zy2+k&5)#3c!vn*!CD&GS_`E%4LP(H)26r2Wa(op>(z?hNYN8N6&Z@7!L$ z5JE)LX5iGoZfonl9@d*8sNI_(k*quYSNP$Jr?3C{Os`z|pF_5ux?TkS;$rcJIkVxg z;`YRWxJK$LB5Q*we1mq)(+R=<0Nlph!ATv^wH2}MWPP)wmovpIjk(1`2ZC4)%MoM7 zY7D>T%qtdic&r&%vamzg`ixxzU1i1iGfrZ$2>_d(X# zWBqeUqn-euYC&TmHI}OvFB`Ce62gzXp9&2aqEOZ$^wvhN)W5NdQgT}f!Wsg!_Yw(R=~M9g`I6KtKrLxXH@119x zDC4#qzGwlGp;;VqSy7;fnH?r+DbpZpA^)$mzMdXsMe+}{zot?8uVB=Hp4n*+WJ%Bi z^~WOZeFaqe^GO_lpeL9~ud-3BTk%VNNc&x_F53kX2EZo>_!tB%T2O6b0}f2wB!6}e zaDNK1KtDJk=Pi9JgYka81o{7)l1*0o_!cy;TE}0~haKM@Mpr6Lut`%k;LS}ni1;i~ zGrvsDWJ(7Nj7AVbySl%Rhd;R{_-ku=KvH13IL8F*2M%e;!c(YEsCWyi@;fARfDi?N zX$ZRDs8L0X(EC-#{DQVOG(k(mw}tUXRkUbmC8xlcRA43cwBQll_B7o(*~G1ZVnx6? zGPTsWY?F$Zv&N5R+Gy!l|M4A$1`lUt1tzkucI4>44+f|JFGCQVB%9?$Ei@&(R!hve zqsRr(=>LcigDXrIOs6qUuP_yXRhY@ITIMBqlH;77k5gtr_R2u zeghgIB6{0_I%1E?KfWd!IF2IWzolbBjx)?)=<`gD2^hS&4@}=h5gmAkIy(cn2EzGC zfcb+t4GtH}F>wK@$Cm~ZLjPAZryZU z1Oh9-oNabPWuKGb+6~UqR}bY0cSZ?7Z)Y56gfsZib9eSo8n4M?NHp7|;e7L5%!Bsx z2pMMp_Ceqda+4_2;xI}(xt3+gAC7{2{u3`8L@+SlJx*ipr}*R#H8nlL*us}Lf%(5iCqN0Z zJQiC6vD0;F!9#7kiF|xf^Izv006|J1Wx;b_f84EWQ2Pe0tRy#Cm6J z0Pu~R8^$MYcG=d{B}ew$vb6n=U)=t(6ySr0;0oo;lKTw|Uzr0hWcSpjR7)!adDP;z@)UubBLAU7QQ6sbMGCjN$gTn zbNn+s>hBNqix*!nEL=VKgpLJt(|{uu#C;b@Id1q$uslqe!6+ny@}K>Hf#D@{<6yD> zG6e=^^01SSH5ig$A8lQ>u+_YoiqG^K^Af+ZJ^s~tE5%Rf?9J)Hnmc>iTCf4q9x=3b zF0E-?FZS`9ATZg0$NE8#^hnmoF8x=fe;}$gB34U%B1u#yjgMNE(e!|(bmXzFMmnk? z%*Jt#)iAVg^iNy4QGWy^Na9#;J60E1md=g=j{%R$3Y1PHl-aQLbBb_VLk^m(>D|x@ z69=%xMinsu9)_?ATYodr`CK4|xUf8+ao@j#19KL~83r3t5dSv$W`Z?L?LL7w@Qhky zMTHUqNckFqyn`f)d?c}CNfLlJR<$RgH|eDHNsI8I0)A@?a4!d=^K7L33Rfo*6|5%q z0oRKairsM0+51dbo0HuZ3?~H6{|&3OWUUCUNO=1iijm&pH);~`bo1dyn)qvgY~#$$ zcXqm0ug!Euh!mGbv)jdr*AJDdU068%hcCMS=$W_m z{?e^xr?y3Y9$8{Hqo-;3bLj2UskQg4fR(+;vPu?9t3*ouTen}OPO~51%S?@{OQ?NM z@_#HsL1PXL(HzXGc^(A5UT0eU+2o~%*JS1IrC7uQ(N_ffMQ{h7cXKm*TNKkN4^iZ| z+uk$SEci#dbGQ+)mmK{7hT3owC-AXvOQw@efq;XqK&*yVZE&MpDHs3QJzpD+CH4Au z2e-RopMhT{pNMD3QG6U{KVB`6^mt+VX`(I$g{oH|k_HSSK^~hesygz(!5)=4YN@IW zsMMWP<#2N^P4qIjq-pof&)cic2x6`4{L7$^${^msZ5TH~7`f2sFC8|nB+jSd{yvTo zP}>ZmR5Y$r^-?k&$$Jo@u}PcM6qd^Bx|bKZck1!;3E;y@0_Tj?+E3g(@lx+sGl!l8 z(L|rRe}5|SS#)&a{;db8*$|nj6SJ<}Ny1c$+LnghC}g^6e~s!$<1f1>TDYJMAW!5T zG`l5i*>bms7pwiEO_Ki1>Tt1jRQ{kcZid0%BOQPkWGFg8y2QT3Q*ewr_Z5Z~MAE9a zW~EUZs8OmW3d;c!1*U{>{AOD$aBNNjLC_>k-V+rRggB<2&!E!M4;TQ$z%c3%cafRZ7Ak}T`0n4jz_@21hx!91LIJ-#Rx z5>b3H+`Jc=o19~}&Pwg&TNH9z4r@UN4@0z%wT>dIKl%HLaScbccyu(Mpe?e+?UG7(;AqDYz2&n1ho&1|vMRp|Ks?-fF0@q2b95{UIvk`uLigksu zzFCq$3ig;R;xEy;x?|2kQ7NR3^!Bn`Ay87U%P;e~BI@Y0SBp%d;_Wx`ow;rrq$?(R z8!n3KNO)|96EFzLxir;LZBH9y)bj5f4s7>47DZi^EJxjxs6XXL0@<#Dpt#BZzS{nw z__IV05%rxSCkafYz?(xj`{>)kJ0ZSs6A7?Z5i|Du%l+-D5EDVAX)`ZjH_{vY3=QlZ zm?gflCBZ$LRN zS&JZ4-cT3i2^QxLorM77zW_L-wl<(Aa28t;?@$|jO}RBgYTw_9sFx;B4+4f!wRn>b zg0HDkxC{uXtpf3vvA>xyVlE_LGU&Q0O_4M`EjLXSpg!!O*SgUwltyyZ_WXNpTHxJ8 z3xx6^Vdc4ap^{fsrHRWQPZt}RrsXCTcE@a0j~wC^sasgTcFg*NGFheC9!gT4u2A{& zn>StlA>%c5our(>@%|bFT)zd@IV?3enQKP&z#SkF!bVBu&J1DWpC&bV#ydgRBOgIK zR`OJrJjcoWCyO$=9~z5OU}bzT0suTx)&|R zt;v%sct-LriU}$fgPs)-AJBQ7oAE4)JE&rl9Pb%dpT1|)%gwb>^@^+C&rIf>Nx%V+ zZ$dr^38aH+i>v{EhgZdmaU+N}RDVQtOB(I+`8lpzD>f-_l!ZgJM{;IkNnq>D&6zRDjt4OX*IhO-G7moI%+cx!=)Q^t658rT zO9_!XlOx_xwUVW@DpP&P8_b0S1F z^SbUF)0)uq^YRuxW1csC89Ok)oO8JgPGW&u z2B~%#EI8^LJ8;!~w2x#pKwd}w!|CeoY6y21s@%?xy4-31aReP~J}*7H=T?h!`6ba9 zvU+poQ9PwJuxu#j&n>2T567EkF!z_lh_8bV@4Nd8t%o1lNfnG7=OO1z4pbdgm%kPz zQz6G#Zg0GQ`oYMP2Qk#TPK;0Wa(`4)sm55{=L<-gT?wUt38aGfbUgKbyoxAHGn%w> z)vAhQ~jZmZtT=37J@B%wmZU(qJ*&+9FNXf!DAFS~3$=#OTm ztq(*z2ajIOa0|6HBwBIbg`9vorGT$qd}HO@Q{o#;K7TYz)XIjJIh}z5<{>$hitF@{ zzYaFO2bJ?4&QxKb4h#z!p=%~nMXSq|v}SdqqCXS<0hj{@RX}GZ?j4lh!4kgbD5FOq z0P>$IfuM>`AL?U_M-zdiJ3N} zW`ik-SZra~Jz39luk&>Po=l~WNJYWt2NjCvYZg~qd(!$o{kv1xz$+MUkm^#BsfT4| z-};sG8z>B zXzRH=;S1q>#C1>3jv4$i^;BzO53ApfORwu_FlEC$GTcE4)g=!vvmb1o>Som)6fbdA zx!W7xEE%TE>Fwh8^=+6U&w#GIx>;?s8et+wSi43KbH~VtFNg9tc-q)ci9B9G3y&fz zaUW!hM%@>AVh~ul-ic1a0 z5s`oCK4;An0xMPwlh)?X2l_fJ`3Hj&#pW@Jh7DUc^i)~hb+;V1m5SjRU< zN0kJMAE3(*KrP|)8CV>rAC^H|+Xhar_D;OlM&MVHyio#4PQBQnkC5*Sr9(u&=<)g* zTxJSO`#W`~1!YB~K#(5KJc73+DR6p_Z=T<8|~?>->;yz#`xJszG(KL1&et4rOXq| zv5D^VwPI5f?fw?+Kv(WpYpH<(6PLlEqFz@NmKBnLMxPr3P)6kixR2oDV(HtNsOM|e z;pRM1pPjn1SD_kL=aGh)IM5_R)#&X%QytOq>JyyorC)Hrvscu5(}mGW!M2R^j$2-M zZ<)~WtrsO}ISkMy)!i@mxkhih-EAq;^9rdZ%iT8Tbz}e<@NeZSB;i@#w+;1=-^uV=OEe9 V8I>?S@NFbWSzbe~