From 9154f326ba81f98cf432f6ecac3285014caed24d Mon Sep 17 00:00:00 2001 From: Rik Date: Mon, 28 Sep 2026 16:24:45 +1000 Subject: [PATCH] Icons: add 64px (Firefox listing and manifest) Co-Authored-By: Claude Opus 5.5 (1M context) --- scripts/icons.mjs | 2 +- scripts/store-art.mjs | 4 ++-- src/icons/caution-64.png | Bin 0 -> 1852 bytes src/icons/danger-64.png | Bin 0 -> 1877 bytes src/icons/idle-64.png | Bin 0 -> 1876 bytes src/icons/paused-64.png | Bin 0 -> 1875 bytes src/icons/protected-64.png | Bin 0 -> 1884 bytes src/manifest.json | 1 + 8 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 src/icons/caution-64.png create mode 100644 src/icons/danger-64.png create mode 100644 src/icons/idle-64.png create mode 100644 src/icons/paused-64.png create mode 100644 src/icons/protected-64.png diff --git a/scripts/icons.mjs b/scripts/icons.mjs index 6ca4fc7..fb0e193 100644 --- a/scripts/icons.mjs +++ b/scripts/icons.mjs @@ -18,7 +18,7 @@ export const STATES = { danger: { body: '#A4243B', facet: '#831C2F', meaning: 'Known malware, phishing or scam host (garnet)' }, paused: { body: '#8A919A', facet: '#727982', meaning: 'Paused on this site, or protection off (grey)' }, }; -const SIZES = [16, 32, 48, 128]; +const SIZES = [16, 32, 48, 64, 128]; // Hand in local coordinates, middle finger centred on x=32. The thumb grows out of the // palm's lower-left along the index finger so it reads as one fist at 16px. diff --git a/scripts/store-art.mjs b/scripts/store-art.mjs index 52ed637..2f34e86 100644 --- a/scripts/store-art.mjs +++ b/scripts/store-art.mjs @@ -142,8 +142,8 @@ for (const [name, html] of Object.entries(pages)) { await page.close(); console.log(`${name}.png ${w}x${h}`); } -// Store icons: Edge wants 300x300, Chrome's listing icon is 128x128. -for (const [name, size] of [['logo-300', 300], ['icon-128', 128]]) { +// Store icons: Edge wants 300x300, Chrome's listing icon is 128x128, Firefox asks for 32 and 64. +for (const [name, size] of [['logo-300', 300], ['icon-128', 128], ['icon-64', 64], ['icon-32', 32]]) { const page = await browser.newPage({ viewport: { width: size, height: size } }); await page.setContent(``); await page.locator('img').screenshot({ path: path.join(out, `${name}.png`), omitBackground: true }); diff --git a/src/icons/caution-64.png b/src/icons/caution-64.png new file mode 100644 index 0000000000000000000000000000000000000000..f46b7226fc1f492405587ebf384ad31278a953b7 GIT binary patch literal 1852 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 P00000NkvXXu0mjf;XZpM literal 0 HcmV?d00001 diff --git a/src/icons/idle-64.png b/src/icons/idle-64.png new file mode 100644 index 0000000000000000000000000000000000000000..1441e534979116b379d0c6e1e97bd7dfa9abf17b GIT binary patch literal 1876 zcmV-a2dnsrP)+Lqp5R@%zr+6z)j8;A)6DMBJBEfkQp^nG_boUtdJv=l|0KD<=UNbn|?#ABn;a}==Kk5aWAz%aZy|s>n z2X|(3;0pkWg&SR?>JR()7JlQXuE z2(b_|w5L6GxS9h5FqAI*nbV5P>8G9qf9*Hv7x8uln2c!xSejY%3gZkr`)`Mn@R%sm zE`k7tAnp_9s9{b|jfal$A3wbHI+%cA0j$UYhVE;3Sba|kPC{_RZSCI`vQlyb?Md96~LP9rBlL;H(+ua zScp{u7{D!+h}RoRb6STh)OCbHOnnVg+-MNlxONgx=vwRJp5Q5zL`9>y_z_1vph&Kvls4Zj&I) zsmf1l8<1C(xXycyFy|#qPXUu*s^hj^nXU#T2>KUTg7~g7KecUWZoSX@03F?Ouz;=! zJ-77AbOqqcP1Z(conSK9$tJxrPW8*;pd->KGg>^L8BB+`z*ZvLvS8*MXukLi)W^kOGpa+0r~wgs=eg}^?w%6T0+F$Y&ItT?x2J2}g@W|Z zqpTH~#WRE;(E=;Ic(G%6zKIu}g=a0~W_12SoIbKGqDLF?hkd?eZ7^^TjNu*Fd5x;v zv`d^5-C!o+5ELq(URRc#jK?Qu%d(dcB9?)1?nbL1BUwXsAm~#57%rbdxLvP}ApB~* z@3TSIt1HbpiJG8Arb4J07qv6U6ZPJs3qTkf7N6ReJbX}+I#vBkDQ!9>MJfwUM6H;m zoiW1?azwrNr~(i)CSRZjKb-|Q;Mo8sLP0b%{NR14rL{8})*_j9cpp*kJ*tVv_p(LO z1PY2F^JBTGjbJi@4zWXmUzW6s@oNA`Y5=~czshu81ZkUY84W)eF26tIXdhfp(l8Sf zYyjtSHh@TeDyt49>&EBwLf033y9e2m{?4$R02qy50~|uy8=Sc`v-~+2MPM{IehpB; zCHoa%l!sDa6v09yehsKTn5?Or)I2>}-Hl)aN`mWoiE80M>Bsk@Rg!ZtWdkDwX0P7< z{Yzjm3{;t^_gfNmBn2RZv@gIJ+X@!L2~CJrhe&#`l7kF+XGj2f7c2$?HIt*&;bsaz zKrG&%n5wN70Snytzc%PTUj_-}1kl%2jHhcL z2@xX0>-Ac)29b048c&`m)tb2KE&&OoZt|ys^d7+#ZH`?^2-=FU#rbv(G=`kLv#pFzh>S4T_4}^HOq_?w`BzT-2;)dyJ zm<)P)?e}j){1H@Tr{M4o2KdwP-*J)ZYVm?TmChULI!9>}8*6qQekR=SK7q-(U;^eX zks;?u4_#7MkrmT?X3Xzt#g|(;dpd$iL_R2C2Y#o!KPlGEYZx+Afx=CF-4mv0vASv) zVek`O?Yt9Q7AW-gfdLF#>VP*XoY11I#-tBM2-HH~H1*}xfq?Nf#ilHkUAd#=upnYH z7{Is8_?8W(l3@`~( zy|v2yse8~W?F5SuLhP(7%h>}aV!FFpm6v(|9U#pfn7OuJ;NRx@qd5n_WGwO5tMXEg z;N#LfHxBW`vG-|bk7geM3$Sd{R8?MD2?4$qVw=huiZ&g#w!SP!YG7joOLvV`9@tnR zxLAcrBb%Xm31KU7I;;XL#PV%()d$l~a6y(}vRk$d8jo&5(62AeItdnI%f7*%^HRFzUN1GWf2qbhg9c|uttKHa|~RJ-d?SYlmS)_JfA+XSFdxqtl? zPWfCh{G?@z)9smax+p8A@LRmtDgce+xf`#mjLyZ^;r9XAO%9K1ZlEyp2H1=(J4f|c zzN2{8!`7Rk?r6?eFhY!|07e5({qFI900030|5&oymH+?%21!IgR09B!<9tZtw|ou& O0000xFK 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 W*@8npeg7~30000