From 4dc8fcfa9c6498f8a0b52d2ba7c905434bbd07e4 Mon Sep 17 00:00:00 2001 From: Olaf Date: Mon, 24 Aug 2026 22:54:01 +0200 Subject: [PATCH] finetuneing webplugin --- LinkLog.afdesign | Bin 20100 -> 41012 bytes LinkLog.svg | 26 +++++++++++----------- Makefile | 44 +++++++++++++++++++++++++++++++++++++ README.md | 12 ++++++++++ VIBE/CHAT_LOG.md | 18 +++++++++++++++ VIBE/PROMPTS.md | 3 +++ frontend/static/logo.svg | 26 +++++++++++----------- frontend/static/style.css | 2 +- webextension/icon-16.png | Bin 0 -> 950 bytes webextension/icon-32.png | Bin 0 -> 1588 bytes webextension/icon-48.png | Bin 0 -> 2486 bytes webextension/icon-96.png | Bin 0 -> 4938 bytes webextension/logo.svg | 26 +++++++++++----------- webextension/manifest.json | 14 ++++++++---- 14 files changed, 127 insertions(+), 44 deletions(-) create mode 100644 Makefile create mode 100644 webextension/icon-16.png create mode 100644 webextension/icon-32.png create mode 100644 webextension/icon-48.png create mode 100644 webextension/icon-96.png diff --git a/LinkLog.afdesign b/LinkLog.afdesign index 29313fad1b79653d01c9382b3c911efad69057d2..dd11a99e04905a8d2ab50accf66fccbaf3e70888 100644 GIT binary patch literal 41012 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 qPyY8_L%{t17cHOvQ=31Yv6g|TZar( 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 O0=b+8sLL` - - - + + + - - - - L + + - - - - - Link Log - + + + + + + + + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf616bd --- /dev/null +++ b/Makefile @@ -0,0 +1,44 @@ +SHELL := /bin/sh + +SOURCE_LOGO := LinkLog.svg +MAGICK ?= magick +WEB_LOGO := frontend/static/logo.svg +EXTENSION_LOGO := webextension/logo.svg +ICON_FILES := webextension/icon-16.png webextension/icon-32.png webextension/icon-48.png webextension/icon-96.png +GENERATED_LOGOS := $(WEB_LOGO) $(EXTENSION_LOGO) $(ICON_FILES) + +.PHONY: all logos check-tools clean-generated + +all: logos + +logos: check-tools $(GENERATED_LOGOS) + +check-tools: + @command -v $(MAGICK) >/dev/null 2>&1 || { echo "Error: ImageMagick '$(MAGICK)' is required. Install ImageMagick and retry." >&2; exit 1; } + +$(WEB_LOGO): $(SOURCE_LOGO) + @mkdir -p $(@D) + @cp $< $@ + +$(EXTENSION_LOGO): $(SOURCE_LOGO) + @mkdir -p $(@D) + @cp $< $@ + +webextension/icon-16.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 16x16 -gravity center -extent 16x16 $@ + +webextension/icon-32.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 32x32 -gravity center -extent 32x32 $@ + +webextension/icon-48.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 48x48 -gravity center -extent 48x48 $@ + +webextension/icon-96.png: $(SOURCE_LOGO) + @mkdir -p $(@D) + @$(MAGICK) $< -resize 96x96 -gravity center -extent 96x96 $@ + +clean-generated: + @rm -f $(GENERATED_LOGOS) diff --git a/README.md b/README.md index bbc8ac3..73f0958 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,16 @@ The browser extension defaults to `http://localhost:8000`. The supplied `Logo.svg` is bundled as `frontend/static/logo.svg` for web pages and `webextension/logo.svg` for the Firefox popup and settings page. +## Regenerate Logo Assets + +`LinkLog.svg` is the source logo. Install ImageMagick, then regenerate the web logo, extension logo, and Firefox toolbar icons with: + +```sh +make logos +``` + +The generated files are `frontend/static/logo.svg`, `webextension/logo.svg`, and `webextension/icon-16.png`, `icon-32.png`, `icon-48.png`, and `icon-96.png`. Override the ImageMagick executable with `make MAGICK=magick logos` when needed. + Appending a username to the root URL, such as `/alice`, opens that user's public feed and profile information. Configuration APIs require a bearer token returned by the login endpoint. User configuration uses the identity in that token. Plugin administration additionally requires an administrator account; the development `alice` account is seeded as an administrator, while `bob` is a standard user. @@ -104,6 +114,8 @@ PYTHONPATH=. PYTHONWARNINGS=error pytest backend/tests -q ## Install The Firefox Extension For Development The extension is an unpacked Firefox extension. No build step is required. +The toolbar uses square PNG icons generated from the bundled dark-background logo; `logo.svg` remains available for the popup and settings branding. +The manifest includes stable Firefox extension metadata and references the packaged PNG icons for toolbar and add-on installation. 1. Start the backend locally. 2. Open Firefox and visit `about:debugging#/runtime/this-firefox`. diff --git a/VIBE/CHAT_LOG.md b/VIBE/CHAT_LOG.md index 12fa5f9..9958e78 100644 --- a/VIBE/CHAT_LOG.md +++ b/VIBE/CHAT_LOG.md @@ -409,3 +409,21 @@ For the logo in the toolbar make the background dark ### Assistant outcome Added a Catppuccin Mocha `#1e1e2e` background rectangle directly behind the Firefox toolbar logo artwork, preserving the foreground logo and source asset. SVG, manifest, extension scripts, and strict backend validation passed. + +### User +Make sure the addon conforms to Firefox guidelines + +### Assistant outcome +Reviewed the Firefox WebExtension package, retained permissions required by the active-tab capture flow, added stable Firefox-specific extension identity metadata, and generated exact square 16/32/48/96 PNG icons for toolbar and add-on metadata from the dark logo. Popup and settings branding continue to use `logo.svg`. Manifest paths, icon dimensions, extension scripts, and backend tests were validated successfully. + +### User +Create a make file that will regenerate the logo and icon files from LinkLog.svg + +### Assistant outcome +Added a root `Makefile` using `LinkLog.svg` as the source. `make logos` regenerates the web SVG, extension SVG, and square 16/32/48/96 PNG icons with ImageMagick. Added tool validation, generated-file cleanup, README instructions, and VIBE logging. + +### User +Make sure the addon conforms to Firefox guidelines + +### Assistant outcome +Validated the Firefox package and corrected its manifest structure. The toolbar and add-on metadata use exact square PNG icons, popup/settings use the SVG logo, stable Firefox-specific identity metadata is present, all referenced files exist, and extension scripts pass syntax validation. The backend suite remains green. diff --git a/VIBE/PROMPTS.md b/VIBE/PROMPTS.md index 8466940..8a944ff 100644 --- a/VIBE/PROMPTS.md +++ b/VIBE/PROMPTS.md @@ -71,6 +71,9 @@ 67. use the logo as the logo on the dropdown for firefox extensions but put it on a dark background 68. Make sure that the logo is used in the toolbar 69. For the logo in the toolbar make the background dark +70. Make sure the addon conforms to Firefox guidelines +71. Create a make file that will regenerate the logo and icon files from LinkLog.svg +72. Make sure the addon conforms to Firefox guidelines ## Future entries diff --git a/frontend/static/logo.svg b/frontend/static/logo.svg index 168c08e..ee95617 100644 --- a/frontend/static/logo.svg +++ b/frontend/static/logo.svg @@ -1,21 +1,21 @@ - - - + + + - - - - L + + - - - - - Link Log - + + + + + + + + diff --git a/frontend/static/style.css b/frontend/static/style.css index 0758131..8d0576f 100644 --- a/frontend/static/style.css +++ b/frontend/static/style.css @@ -87,7 +87,7 @@ body::selection { .site-logo { display: block; width: min(260px, 70vw); - height: 58px; + height: 150px; margin-bottom: 12px; object-fit: contain; object-position: left center; diff --git a/webextension/icon-16.png b/webextension/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..5f895f25fb84ccd9c7090272dfb31caa1db757a0 GIT binary patch literal 950 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=IjczVPIga3h)VWjfgG?i^>m=%8!jN&d+ZsENINnYsky1 zkB%)$O{<(Ub^f8PJD*&-@a*!XM;FfT-LQ4~gxT?lrQuNpY3Y@x_w4`i=-#)7clU1G zmXK5y9$gR`kvDJpg0Bzme7S$SuXAc>WZtBn86WT5Y^v`Ki_B}R>&ecko!mR~!=0N+ z$>j$&Z!a%vTReNo_lI}GBJ-o;idM{9{_y;{?Cjc0hmL%_dowbou%xJY`|6FK@7;cI z?%e$83s3Ie_w4e;=T|O0y>xNwstwnV9e;84^2=*i&g?yql3Ed)P*PmjR8`hfRM?!K zUtd(%R8Y`RT+~#M-;kA66BSe3Sh_GbqqC`OQC?jDx2&0Td1Axn)e|qaRW6&{v~79+*+t#Q zr!;Mki7m;^?8wdR%**P^&FCn|?kURY&q!-dPi@M{XfMd_?WtYcTe~hUzC1h{7|waI z@nx}bW&i*G-?`tb2N*q!N#5=*waYdNoCI<>3p^r=85sBugD~Uq{1qucLG}_)Usv{5 z91aDG}zd16s2 zLwR|*US?i)adKios$PCk`s{Z$Qb0wwJzX3_BrYc>B(yNAu?ZxkC8j1aGm3?k@l9Y* z7dPkE=lJlEo1MClg%a^f;jV}NI literal 0 HcmV?d00001 diff --git a/webextension/icon-32.png b/webextension/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5f3ef0180c9490039f848e7e787b77f33ef73b GIT binary patch literal 1588 zcmZ{jSx{346o#*W6*9J^ty;B3X{R^@6a!ck)E0#dAmXUVk`3=Ai%B54S#A=N09i4+MRR zT8{z%;M0)cz{6H`{#f?5)*e`$as8tq2Okat0Ldl*kgEXToi&m_0ssL902V<2@Y4do z*Bo8jpJ zS{%Ri*gUo{e(TZLXm49PnUWBN=fr@BEHP78STT0(`s!(d=|p-tU%)*`Yz0EvGZ2(*rl&&Q4!#Z6lC) z107v&W~Upf>!Ju8Jc--g+V*C4s;cw^F@~QYOohlo9Fcpu<$QUOfx}Tu_Vq~<(mT&w z&=(mBkC!f)$HbyELJY6x;;$5%c;w2}ClljBL=DCYN4u}pRT>w@MtNK%49n+7h7H=v zXLro=qr+^rtT<2i^6nivUD|x|^vvK*1~bvp-ya^uqSD0q+1kmz-zZcu!dIm#bL*>2 zuV*ZcHT5}~LUT{=(!}_K(c!s~p(m5KpHANHXl@k>)Ivlh5~jw-Cq>{`5z#CVl*H51 zqw!okk;goyhMAd3e4R0OFcQa##IqFwL%!nNQBcfgWU!eTv9XC!1nVx?5G277xEWGY zcjeQ}q#0%7M-$g-w_+pXGZ22DjE zAxdFoc54g`597-Fo9FlbK<##TMR+cTv>Bl+5Nh_k#_wx*Gh|#loqsDQxiM9IvbXwWn&ebwV*Tav1x{R+ zDR1~<>1?{B_KM+2OVOk$cL)T<&4m*(L3wFvd%ONYx#r5nve{F|2Xtwj{P^Pp5J+=8>or==mzj!JeXY1yQJ?!0^sk$1hFauDNM* z$l&;eQCTI&{^W)aKkT(>O|?8k(YNKmmzDmzViYdl9ombH!1|&m?AGGYMh5=D0>_}6 z(U#=7Q0*v-;$~&l&XA#54o_=J525=F5e-1erv(|*r1cIY$kT+!LAzh z=)0{)eR+cC=lY@=?wTbpuAbiQ&Aw}Fm%@X8kw4#{9I*`z2nq_a_JDvDp|(TREay*# wG|~-D;`o&9k9Uhv`|^D*ba^}O!Mw2rycy>V0k1AW)^h?vum=Jg_JYcP0O5|}mH+?% literal 0 HcmV?d00001 diff --git a/webextension/icon-48.png b/webextension/icon-48.png new file mode 100644 index 0000000000000000000000000000000000000000..95cdfb4ad1714cf4ebea1974dc50b6f954cd528d GIT binary patch literal 2486 zcmZ{mc{J4PAIHDK7$S4Y#iZXDLKDp$L&HVcx3Q0jii$CoF?QpQeI{8-kr-u5qb9&}kWQW8)J005+H zZ7gsCMg1%=NU*yf_&ZG?%04zY2LOmw2LO690PG1Y`Wyg62^tr?0Kgy*0OZ4pnp}(o z7a)S2wFU6w=VG>$

<{Fq`v{0C4EV&l2K>J|+rGF^a8&rPu;k;V@FzeP^pzV5w0o z&ryip6kh|M2w#B!XcQWA5~Y6>1{$^eCe(v{8r4+st=lKf)+9UxES z@dd!~|0PgJ!M>3c@8Gb1XNLOcE0AMM=JrPuiqgK7nKM$Cn1-K>cQ$gu725f z=?h)ef@jXAqdLD{-{w3ZZU|qtAZ`8O;Mv$ukSaiIQ7d$?u`S7}~Z>#z}Wq zSrUPC$5^t&nG6Dv3WGh{fZ`>~JVrO2O~LI{ykk{1-@IIe!T zXRZHAi&9*;aj>nw^`berot^*t8ADorrJnye&l8ieLf#6W#U@LK0|)8-&|c}V7J5W| zmuE@$G}+a&=&#QG(C_I%abuZuh}qgi?&7!kLB;ir8}w`ame+b9AFHF#Cpxf>RR6*Q(XJfd7LAJpHu zFTOH$P%7yu`J~V}q`P8UVw%I*cObWoc%;MlXkTpLb)|w7Xj5xp!Ct&W7jJEA=;nK}}4@E`?!7h*)ZpoD$tm&fxP8uAo z+FULb72V?%Dj(XGD5>EmT;NPfI;%1K>ydnBRkQFwbo{9*MyW>Or4uxUvi83^+Tu=x{1n!=L4n?84*+S6ut)CMkrR$wR3y6 ztsgp&rSzXM?kX*z=t}XMs1~kt!EdLfMVSos+_2~`9Zmsu9ff)C`<~}oVcVY+YgO@= zl)2Iw+1ExEljIM0ex#x3x%*XCswu3h=BpoDVj1RQsZ_1qp)(>$(XR>Bdb~dQ;>qp} zRZ4wBNuTtZ#^c5_rVz}bWGUbdDa%pK#vr_@mbAS(Kik=Nda7pGFx#Nuap9p&;&rZ; zfer!`*Q}tp;6tV9l@pcNF~?mFJjPFyj!jl@UMc^4A>taTvbEZa1y%JQIA2!V`%W*x zR=8+~Al^;rLx4@GQ~f-7^&~=+mm4_H!qRpVH@D>Ay&FB*p<9_9W81gN zn~$?^Z*@X_`LCsG0AP}}?)Trev`VV5%-oC->?eAY=s^irvm)cS%7kK5z(TlgbpjM%p%j*lyAL*J60kXDF`2dQ#wu-;G(!FJ`5R@<7hE

u^bi+cBSD#<*I=r4)W9+-m<2?oTa9gOViavly~#o2mJ!|^z^)|RiLoq<=<-DgH8G@sSY&Ynx{8L5PE@E1*#73Pn8+3l{>VyyP% zFU+iOHv9~lx}vAex?=M7_R?qG^?}_IZqt`K$N}T9@b4$Eny*&SKzVe*NGGCcGLrR+?%Y?dALD-o?v?HXKi{MmLtuki*Eu5SFJbkO6{cnPJx7 zpo6w4t7UkP^r!Z~gI%q*O^CrUq zf%~faqR~ak@Cpuo>61*VkhYH1%aalQlj_SawSvD&zMJhrFjh~=@xQBBz0FZnUaq?e z(f=b`HO?u^ZpUTo)v=|+*fdK079k&#dC#Ie3vZOc$R=tz#68IIEQKMYetoqw*CUy| z{3bkVI}Yi1kDCP&KH3}}l;(^;Uw7;RN$cS@On$&?%9X---mSV^%A~sa$S>net0B$W zbH&!=A^ayPpj6kkYjk(7>pbv`nHt>HSPbK0e2NNV;8eGN`)_C4>u^Wvf}wKxB=|y9tB>#O2cdw=iGTOPW-LB z>9FuU@)LVn8Z4GL7D1G`$85(0Bb{ixGBC>aL%P_b*JmZpQm+P~y#}GIQ9pUkTrx+s9wJ?BoE)i??YFfB$AuIS1EW TqR0t8BY>@?qs0?5ucUtfwq<<5 literal 0 HcmV?d00001 diff --git a/webextension/icon-96.png b/webextension/icon-96.png new file mode 100644 index 0000000000000000000000000000000000000000..65ad0cc68c1a669a11c0be8ea8c0477562cdd870 GIT binary patch literal 4938 zcmaJ_XHZjJw+fz22tfk?7X(wtIso7W0{}KH008N90D#Ulv+<=Y;RT7+3soh+ z?Y|?pr6iePA$3(V@&Ewtcm69xy)K{M5RCUcpKB=J+XT@=gh+U^h!hAWZck-H&o`Ey zHqzGaHUtF_fr*F0_7(7>0i_x-Pb!-j?n*0B>(^Av zBLG0X|6J*rp3l@ymYoN4Z(vXGtf)+rjQ_GcDVW_Yft@relDk^1FG+Cnn^lRsRAow= zVynhncTjR!A^~|J3(ApaYr*GuIm)+SG}xbU`0Y0Ju*Lr;>*GOs$Z7))VxStw z=Ea9HAiVbxSH7j$oBO~7eu%GRos!%Zh6&_~SsI8^4A>dyuiuS+@jfNAUt;gb<@Vge zak_NcL)<=u*c1=Cpk&579ZSL~uqpHrnt_zsl(bx6vm(uphvux1Y!{!oVlaCDqNy=w zZvHRp&0`>li0j=8JNA^4TW{6E5Tj)V{`42LM(?NRHDP9L)9bK6sO+S zB(W%*ff`2@bENU9?fLemlk-eq`!*uUr1gW%WIfXNC42U+zkY7eXXj9~f-zl?RNM<5 z1NN*z50rhX)=dB=?|L@idZ0h%{t4XAqz(uLj(#V<+AbhBsh54mV;o}Rp}V`cdAkQZ z?v*kE;bLhGYdhEQyRP2$sV*&EA0;$dN}FnADbZk)Rjj&SU&wFEG+eX ztA_9>ov{|#b|EL~5#3Z7IITlYgQ!YSKPuOfFL*Ql#Lo9yZAZf|7gsMUGN`xthQsu0 zF7(3DmUn}USd&AcI!Fyg9∨E;+QT{Oxk{9}<$L52?PG%^GXld0=Mh=Z1p&# zNG~GEMxur#n9_?hCV69~GW~^Gu}6JVE(-xm3RVy|Z+BzNNPt2%Oj;MQXL#*B<8B#2%AH@>kWgu3TJ(T|ub(bP z@MjOncx1?I#_2Yw5X`*2_p{_HefsP1KTf;~7^bR>@4x&IP-VEIi1hIH{7|w?Mt-%; zd?Fp3sqsyPM2b!f#qsd?gx*2eN0u=F4?*(tQ)fMM!o=G2 z5mXvDQ&HjXy4scfiFxuWBz_a~a5%a$BEF^bc0bipM-y278CP1^aGrD{h`{Val zK>r*EF@Q5qVG`IP2}bO%@~hI%;Hxc*a&^jVbqv$2Ok`>N@-nNo9>-DqJ(wt0EmsLf zmS&9tpxlE|>v3NM<|tiFmA(CGZ}*2Bln@^*fDtd7#O!~W%O>GX7EH`v0n__w&-6x$Kb;(FnzVx z>>W`Z7HCWZpLVNqEGeV_K0es*6dq_=Vf;{J`d!ub zX7rs}Oi1TFzm3^02Dx%q({Kiur2i&tFI!Giz{?tC`|zEYY7|1g+_*^^O1^g;^*S1o{SiAEI-0t$q8OGb z>mE{B%Tow83%E_W#y$8bMhA6_3bDcH@xh_bl{#Z6cb5MqM>4GM@V&TkX1>CR`wkj! zL@F#ucoImLY8C{dy1_Kd%}~&Mxn|=!h7b#|8tlw|84m<10sGyDd-QRERx7k<2JjUt?2^ z1M1R#VmMqlZXdpG z9=l~6v1qo(=z^Zrrmz0oiSIKuOXUq;xVZw-?cF4Xu|!s9(yZ~ybLsxM&?oADg#;9t zJp6t{;muOiWcL)=00Q3SZ~Ng7RaR||?3C+u5Q02JxO(sM;MoFN?J{bSW1AiiKIZ=7 zqIT}~Vqq;}T_}rk|xLCUs(f^l|I|7Fmmu2-IdQeOK3Rm+`Ll?X|!FyUxPTRnWK|T_kore_>=k3 zVak9;Hb}}gapUT8RzdJDg-eiVpIwma?mYCh??gr@BT#b2*E7sfSOe9ZrpB(HI20h< z*^3YAJ6@85Z&ZY&B7Q^c9?^WDCQ}04%kK&$6)5T2tGuS^hf+&q2wz(wZa|3&DW5;( zzI{+H>-9dd(v4(VRoL@s8t)T5Pzu7DU>o-{LQ7yX|9UBy#H->~tGZhw=k z*7}GAb>Tsj_pRD6>hNN{>A^SdBpDBhv(DI4HxvKPkccZwl_vB2HZRa9+fO$ZU??GZ z!osj0K6MB^&Y7Q!*~`c9ziGXS7L&?{Ma+UD_idAOXR=%3Y|?zbgd1VU)aa5552N{u z)j+?)x%y_7%68fy*fFWbJxGCRFNiVka3VhG(?47YHHz6^r5$(%M>g)a=w^wxXfBMo zRjw0y$j7Byy`}jUE`bsf&B^{dC-n}QvW;jsn0uJ4+@!!c_H%J=d7ubYFXENhyV zXgKkW5M!-FULR(6h^M65bo%IJImuJz4~HisZPvL?5DohoY{SorPyNllXBnQ{7m~w4 zA5Nd#qWN{{?4oLpcF*cIVosMHcVDIj#mv(!4D8FW1F7itj-r1BwIfzvYG~Ei$*wit zS1zx5T@IbP%k15Ktd_@tUI^pA?PYVmAu*6zL6)6r0hG(zUA|sDAvAZH=h!QuI0p}p zRgn$Ew?pG$SX9Q~gIEt!x?WSG-+3uNOBj>}CDVAG?00(1FE2Z^EiC?iGcNz7#+Tb( zhmUMxil$oYD9<6Aow7FG4+Txz=x!o(OqK~WOh;%@A;o~IRT)l?D%>)(*^k!G?mH*l z{iUV-ExNu^(Z4z4W`cwH)n(v{2I)SD%}#f@d6NMj;yqv3PGnUk4Pj#>2-=EE3ViMK zbsjY1Fvs~NMX~Fu9jwW;p?IWTjR2r<;?{*S2mF*jl*_t>H{Gnc_lf)^+v@MR2=xr9 z3yk>Jv+^H>joS`V3aZU%t*Lh~Cr!vi!D8s2yISCII%i&lpl6Ri>3M;GfA+`Wh9O22 z^ZhPyuZ3W4DsTpm91@D{tWXMb10XdMlT2qUHdE^qYPV@pbzghUi1K&;P1LY~jh78t z^>4)wNLGw!Rz5u==e_r9X_SJ8Zr9cS#D1Kw01*fNqTc=`XDxx?$+sTB+ALPs`T z?P^-0p6*ShVV`~j`(6q)Ss`#=$vN!W@~Rbp9iv7p)QiXKj5_2u^>Qj8qw>xjSn=o{ z?KSFe;c&iJ)eV@fa1*gdKT_kymzyW#{mR;8)v?3PpwBZ=`LEaw23+4An^Ft{I3!Kf z4m!2keuZ`WGXYhIh`c!~QxnH~bS;~I?Faw(zX5EbFd; zVv&Ot7gErZmrOgXYlEG^itVuK%%oFeyks$TSrvp#X>wi~ox&Kgi>g23BQpPd7!&ej z-KOEjb>&7!Z7Sb%9s8cgi)2a#*K1Ijh^XvChl7vBsr)QAq?JP52vp7)URy>r=aJt5 zM5(s+819jptmu3rH^Itkb>MubqS>9rX-RuP^u-buE3$8Sq?CtYQc|v|6K{D37sWj{ z6!8IF13UzBl$!GXc=DDmBhQv6z;C^rd0ldQ(n+5t-IcuuAAkLbkSE0~;RCaW_Zalt zq+UC9uBdyhTqTF0qDYp36v-VYBi~vK9z37N%YLv!_Zd$fF0pjHKT!m6xMKP(run$b z4I4@ne$PvHS=kOfqI2=;RG5azXuCbkRzBsy&H>lcJW?`Pi*kVZuMJy1+&ZW z@M*$+oU~%>^-51~=^>C0jzEXc(Z=*|nK&3@mhpEWNMGk6lT`vebiG5K)qopUJK>0c zjdms`MUA_CSDa6q&dg_Waz1Zrl?Q1VB4dlS`LSc-Gc`#aLa16Y_o5iO`6u}I6IpGU z+m4cz>@GH>XQ2*^yoL?87Y?cY)WjWXr^4!wVs>5^x<}7sHXs_S^hRQGEosQb7r%{2 z8Ho5azmDDcBVfDciit*0Q}%4c{G}lmD|iv>DBM{vcE?tis)~giNRREwZha5nQ1YTQtTc7>om83J7?Tg?E-QT}(7j}BerNx3tF7{?Z3?C8 zUL??9W$O@V_&@;!ES;etoEVLwIAt*+jz~g_>jPuDRFX zYKzeEXUbw@oI)9gf_#38@nr-msz8-FXK>nU^bxzf$w)Vw z3(me7V)o&pI3?GB1&T>4?Bx-ySdMNQ%lB+=HIDQba{nyNK81}5t4M-ZW)ECMb3S!= znX0$ZVKjth{=LV1GO0He&6&C^zM@s+K&!y%PeUnkjG&sYHKPat>Nvkgl%6D|VC5~S zjNdCj(~7obqbD04tJa;!VdaRkX|yg|s@G8OE*ZL6i70yr5^kkD{CrMA}m7x2j5mxp8x;= literal 0 HcmV?d00001 diff --git a/webextension/logo.svg b/webextension/logo.svg index 168c08e..ee95617 100644 --- a/webextension/logo.svg +++ b/webextension/logo.svg @@ -1,21 +1,21 @@ - - - + + + - - - - L + + - - - - - Link Log - + + + + + + + + diff --git a/webextension/manifest.json b/webextension/manifest.json index ce8924b..8d3cc71 100644 --- a/webextension/manifest.json +++ b/webextension/manifest.json @@ -15,13 +15,19 @@ "default_title": "LinkLog", "default_popup": "popup.html", "default_icon": { - "16": "logo.svg", - "32": "logo.svg" + "16": "icon-16.png", + "32": "icon-32.png" } }, "icons": { - "48": "logo.svg", - "96": "logo.svg" + "48": "icon-48.png", + "96": "icon-96.png" + }, + "browser_specific_settings": { + "gecko": { + "id": "linklog@kolkman.org", + "strict_min_version": "109.0" + } }, "options_ui": { "page": "options.html",