From a2decc80e0a204cec22ae3884cc0e4fdb0a97fcd Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Thu, 18 Dec 2025 15:43:50 +0100 Subject: [PATCH] add distinct icons for disconnected and restricted tab states --- extension/icons/icon-black-128.png | Bin 0 -> 2691 bytes extension/icons/icon-black-16.png | Bin 0 -> 715 bytes extension/icons/icon-black-32.png | Bin 0 -> 962 bytes extension/icons/icon-black-48.png | Bin 0 -> 1210 bytes extension/icons/icon-gray-128.png | Bin 3169 -> 3032 bytes extension/icons/icon-gray-16.png | Bin 1050 -> 771 bytes extension/icons/icon-gray-32.png | Bin 1311 -> 1050 bytes extension/icons/icon-gray-48.png | Bin 1670 -> 1334 bytes extension/icons/playwriter-icon-black.png | Bin 0 -> 10218 bytes extension/icons/playwriter-icon-black.svg | 1 + .../icons/playwriter-icon-gray-disabled.png | Bin 0 -> 9998 bytes .../icons/playwriter-icon-gray-disabled.svg | 1 + extension/src/background.ts | 39 ++++++++++++++---- 13 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 extension/icons/icon-black-128.png create mode 100644 extension/icons/icon-black-16.png create mode 100644 extension/icons/icon-black-32.png create mode 100644 extension/icons/icon-black-48.png create mode 100644 extension/icons/playwriter-icon-black.png create mode 100644 extension/icons/playwriter-icon-black.svg create mode 100644 extension/icons/playwriter-icon-gray-disabled.png create mode 100644 extension/icons/playwriter-icon-gray-disabled.svg diff --git a/extension/icons/icon-black-128.png b/extension/icons/icon-black-128.png new file mode 100644 index 0000000000000000000000000000000000000000..0ac9e2f24ae7157682d8b1beed89ddfafe0ce9d1 GIT binary patch literal 2691 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 literal 0 HcmV?d00001 diff --git a/extension/icons/icon-black-16.png b/extension/icons/icon-black-16.png new file mode 100644 index 0000000000000000000000000000000000000000..57215f26358552e6f8adee65b61f2c1f1dd1cedb GIT binary patch literal 715 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf66p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>dx@v7EBi|xAs$|{jfD;V zK%qOHE{-7@=UXQl<{fenaGk$#_Z5z%3%uUjiCupnw9`4yInjKjLuO6Gk_Dcw%_*HB zjh9vy{0X{|t;0IS{%l72mw(s!9NZjTeVw~Kyq$er{n#dKJS@Fcx%tnth$RiHvXdug zbBDT|l|5oJIVfn;^Y)4R7CQRW1b%&RYUyU~g$w=PO?FJ*zASO!T!GRxlg`hZ_2H;t zgbPc=n^o#_VtSI7Tp%j6f^}#0(6~3m6%gfixpXYylHYmT|=bW&|6gFtn*+5|C0Yag8WRNi0dVN-jzT zQVd20My9%kM!JR;A%;d)hK5!qX4(b@Rt5&szA1O1Xvob^$xN%nt>O9V*&r8dz-=hW z%uOvWNz5%k*JEsDY7DVN>!#~lpdLYxp45uWG%M%)ocyBTg2d!h21EYYOrAhVA-JR~ zP=$Y5T5)O#gOORV^rBRttOQ&(AhRMhC&C42XgTe~DWM4fr0wQ= literal 0 HcmV?d00001 diff --git a/extension/icons/icon-black-32.png b/extension/icons/icon-black-32.png new file mode 100644 index 0000000000000000000000000000000000000000..1f828af9e033c55815bde78b82457e169b3c702d GIT binary patch literal 962 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4zl0AZa85pY67#JE_7#My5g&JNk zFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{XiajiKnkC`%4}n9$vGJg$@1; z42+jOT^vI^j?bOC(eHMENSpor08T~4QiZsv(iI&o9Nf_}6uI98jZn=W9 z`jHuBFM@8_X3Z9yCL$;vqBy}xRb|Sf8};l?vbV3VeO;{f|Ju)YJNK_YU%G?4-DJ@0AJk7B1IdS z6_@pSKSUa>`8Z?K$Bt0vX0J?#*0zOVyJQxaxtgxDd8*o`H{WvZp9__Nt&W#wgil)H zV7v88O!5Csg$(ANFSkCDShZSqZHAhB0rPgxm#s{ykG7E;#z9d}Q)>ZyzlhnVt{9(3-=LBEh^lRn3o4H#$t!I8JUi-X;JvsZ8 zt$nbU%Y^D_I#(oRQ>rWijnlao`rez9@$dM30Yw(G15M|SU0b_)<>ZF?Mw@#oAxNsm{rOm?kW-2QUmvFnS33nHao7JX#> z*3GnLXZ{O;X>u8gvJqOZnpA&Z;cb62^<6^0GQ;$;m0xdvbSV4y;{WxhukOdMJ16mQ z!wD(gXN5CUXK8A!d~K_gaKd!@mlq#8omoCe+fT7MynpwhnZOu#NsaJK^YvxW0!C8<`) zMX5lF!N|bKRM*f**U%!w(8$Wr(8|P2+rYrez+l=p#CE1dIUjwQY$jkteo?6@{58C5|dLI4Ebj>c>*Pc z;F7LD75-^y#i=C>MrOg%i&BBI5^&jo%!<^U2p6EGdBvIec?>2-CZ&s1WHHr5qNsVX S_GmUx4TGnvpUXO@geCw?vuS_; literal 0 HcmV?d00001 diff --git a/extension/icons/icon-black-48.png b/extension/icons/icon-black-48.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd946b9ea8aad26bf5f83005785bad851c2297f GIT binary patch literal 1210 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^>;_2(k{*p(Chu3UlVS_(V z{%qtxY5*Ujr0t)qFH7R(Z4MmtKZg^yT7%4f9?D3=jDI*y{~=0@AaXz zEXqBTlujyeR_$<+nXQ+zYnEG=)*`P~WiOdeli#P@e5lRGraDvIxlt?2SWD!D!SR6A zl|3dmxAo3e_LjPxyWe4D@;9d`5ei}KORRJBT_%26`S&WHUtjg2NePU>Jp!$6Gnl$r zzAJBJ-{C(0=+=&R@(Qk}lBT$%G_aWK1ih2J9e6WlyF}j^IfcyPqf?|Gnu+e)czXRe z#%8m>_hyQ$_fY(|;WYcbO{wn^>%0!^E1zi-vbgKl3U#UA@0H!T@-pwQ^kij)IcCqg zx?#-+2KHd_U8?SJt2Eb(&${ApW7+Y}@>TJ(jb2CGu3E(z%f~dw;pUW>zzH&Iv)%UA zH5gs-IccrMrnF>Ln20fRR@mvy-+ZEL_%`w<_Y_~8^KR1_%XV``2K7Blo>(7BXFDFk zF=N4|X(b2iXa1dZH;Q{hJfEKJ|1WFYcg}sK(Nims5K*a|;9RTdb@o&IA^AP#&+rv+AE1uaWINaW+tIQDiIa74`$2FOm<}spj4I0w3V{O%>eq}|T zesy_K_N^L0b(Z}m-!k@Q-aj5K(C^zZ>0{$%iOZ|JtgcmHI~hrc3(=6_3qbwMf`THj1}%N-CCYn8MjQ*E>jxriw{GO0~o_q9i4;B-JXpC>2OC z7#SFu>KYp98d`)H8d(_{TA7$>8yHv_7)<-7+=ZecH$NpatrE9}=c{L%0X1mAZ79ji zO)V}-%q>9IV{Bz=00Dy!50Qvv`0D$NK0Cg|`0P0`>06Lfe02gqa zx=}olAsBxQ5)3gHj_c{}000T;Nkl@P3nYX;Wl<@V z3g{#@iLI)-qQb+bJxpuYs(o0csoO)V7HJRFG%4`VJyd&`v{tMuPnG&mP}hpWs5Bl5 zjBYDaM<7lN`A7aZv7Oj)?AUh?*Kr*3?8} z5tDxky!cs1kUD|{2ofNGj~c4*vH~9h5337buVSU$U&<>(GXKgXK^7Pz%{WP7Bp4w| zKM`W|GQ=?PM9Nn%4c@f{6j|=YFQHDXn{D-f&N(bX0FnMdK z08Rn$EzOM_<|kyi8%nYU?MSvc#P*cK~u%JUaTA;&hk;! ztt4|dhgktw*Pbo>l9$-xwjT}^<^$fR6PSOsG0XtaV!b6f#@jsZO6R6t*ZCcPBL^lY zANbddsx1K4@LSGsV41iN2lyY1y;CiwPH9wHfI-dgY@dtk9wyoOKOn|?Wd5ViO0h|VqyuoV~Ipo>ZJ~Ds& z1M`Pm%D+)?)&zK#*QYm%WhaBzIL2grOQ91yjR{-%n1gOxSOR^`ak?j?f08U}j|0plIZCQyVctt)odF`e3jtM`Z!EMV*rg~numG1|n)&9lyWjy%J zrW1P_t$|(PIvB*#oot^i;=hupTPdyKRSS@)I=J#40tV!s57Whkp?yKQp;Mrq)8HElyP$955hyx zAgCe=*v6A=!GpjgONu!CbkR$UOgUpP2pH5kwa=u1XQ|2mB`{dS8aA_!QSQ^pJqF7a zgCJ-Sa9WC&?-tyjUV1gv>>__jH*Iv4XKe@=PR9U~^=z8=6IJYDCnNOGN*AN#$|?C2 zFz`7m!6aZ~$&kR0pWO^`mo|DyVQYPse))`9Ywx1uvF(bamRk1GPX}#8%ArZr7*she zBU8M7(1twJQ_lf<2oWYu)=dmm241ISB*-oyl<={OokZ!RjV_Xy?(}~QUc>2{Kfws& zON^xiYgtP(gLKeNALFI33oDGG<*Z9|VwAX}p44C?8#zEX9dt0vL@6=&6okPk?k_M9 z+L4zgni!#z5S@&aYOoZB^MrVg9`-A`X4N#ahhf_3pr;grrN?m`0D>My72Z=zf&|%5 zA0fgFlGfQIRx4QNEr@^7t30W&l6vYnL>G7HVpv;~P_iN@!##FuF>f`y*h!3bZqrLj zLtRh;K+wr3YqTH$L4X51%6)Fq#+YIRO6rv$La!$GC*@%qKjH-26qhTVhr$3E+KZN+ z>5`<8^vL*fK#|QC?WD zR1S#B$`agVs3h(uh$tKh6aq+auOtBe%TPH2fE>3;Yj?ks8%mp+LI9Hc^lNrM&Xa92@T3GMD{000morKFr}VH=T( z0wCy9lpyo-3|lp4nzYn_aoQD?6x5DD3jje_S%OSA0!;vhly!u<5onr$oS z07>^8Nz#A0l3j~K@U+vl0%KBX26GmrxH-#D%$Mt141x`OpH)r}q$T5e0SLk~>OhnW z+@2@bw-^N5X>s7 zPmc|g?IUm$%ES!4o#3Qe>0>0 z`^MTqFi6-*6Bv=D0bp%dBNuJzLJeV*FNrz<5S2tqu*B1W=0lL=5^YZ0H|du|nQ+_5 zr6EXikz39t&N4(KkrFKJQh?yI2c}#TT;zXF3!We*=`Vi(An4*eZH1U}fX|$}4=H*L zBE)}L>$Zb-5Df4s+t`RfgbrdVW{sl^8VnJsjJ+fUW89(@FjYM{5+!C3XTWXO>?4>= zohVWtaml#i8H`F&D3Owwi^yItH-&si;7%os0~(YeOdddK7W$W)25GebbUmcKK$sqo zCb>8_-L}OQ{o4~4NP#rDQnJT=%12qQq)mU2Ccstg&pno(`nUmaB2NN@x$d?-CD%2= z01_mmIQNh>f*j|qe7MZ-0(V*2(!R=2h|7h&#oq$H4fBcHHkDLo%?|7Et^D}{&F~@J zZd+9{h51NKoiAWD0`nWrly`Pep+2a(C5q1&ISB}pKk+ZOEh~wx^ZwLySbh(gi~N58 zF+wj-tJzPWj5WlsxiNL}Twz{G0DQ{3<(?yUs0{D$d2vdmu#3CO* zF@NUVZ+PALZlh(S2=DR^iJ8Z4&X|8(Hvtl~@cgp5K{EN8m-syiW(joWJ9Kp`FY}9v z-+R7`_ju2Wa%~;DYUwm4P(^YNKjr7_D5s5JZ7WARpYYe*HA2n3r#lvb~1-?T0Rg11QnW6=JW27-j zkY$`CF%m?H5+O>2ej*GJXM8ZyI1@3;0n2mg|D$&PXGvW+F8}}lL}ge>W=%~1DgXcg z2mk?xX#fNO00031000`3>lYk2y7cwm|I8-q*Iy5;tGBYbMFgh?W gMrm+=le7yp1~N8N8=_^C?+Z%_07*qoM6N<$f{xbX*#H0l delta 2985 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 GkNY=;9zyg0 diff --git a/extension/icons/icon-gray-16.png b/extension/icons/icon-gray-16.png index 067c36d585c5eb0e8fc985dfe5f9163dc7662289..76561ac9d29b0ce650321078b5ab0d5c8d874563 100644 GIT binary patch delta 541 zcmbQm(abhMMN=W!BgmJ5p-PQ`p`nF=;THpte!;*{YQVtoDuIE)Y6b&?c)^@qfi@Er zCF*&EcnrmUzPVY!z`!Wt>EaloalZ7TwU=|E0PBPI|8}-{^q3j0Z57~_wwCYhO-O&v zcBf&lw!oT4OfgM!#qeU=V zJWttf>B(C8ueIFtpj_2!)v9MYH#Ku*BEH98z1mbi^#;3R-jC^<=BzsYaa9|8ztuj~ zNgLf(3GHrMwrrmI_P8(HPO2Oqo-$t1xwR>GTZCAWL8rTI>+F3wb2LOwTFrBdc;;08 zMoA>vBZy%S0k&Sf@bGcpU7UX(g{1+zCNgQu&X%Q~loCIDVN%m@Gg delta 797 zcmZo>o5e9fWnzG6J-4ucCCgo%!;uUOj0#mD5hX#1i4bx(ZE<$tXgIGOE6Qr6)F*KM}{-^ei(StZV>>DOJFRj(}>d9_a-QNFtV86Q!Wzm^AlN*scpFKV&S>e~@D($dh?Qe?fMIuXrG1O8v=M zbADx--+wvZl*{g0%a+tx7I7=Am@vxi(`n!`O=HF z-cF1n$3D)#uFax$(sgc=TV}`~wx*VsA}o%@i$%7$-ghYA?6Pya@+fSx1sgAK{Uw3D zoR9K&<4ld_zbrU6zgTYGu8A&UaFP2`lbKBGPOqSN$WL2}pwZb&D<&Qkh z&u{y$Fg1YXo~*>mERBw_$~j= zr4`47t{qHY@ZG;|W`&Rb1;dD+-Hm>mzP$;IyB1Yb`t6-Q|GAQS25o!8IsbOgPXmTP zKx%|%ny)W|7Ld)sz{DuTzzhl`AY^FIWMBca85q=nGy?mdKI;Vst0Fi1# AoB#j- diff --git a/extension/icons/icon-gray-32.png b/extension/icons/icon-gray-32.png index e69526e723c5f8159d66145698954170c15d1806..22c46d3421fb6bb762220c344c7522ffde2d29c9 100644 GIT binary patch delta 780 zcmbQwHH%|{il#!cN02WALzNl>LqiJ#!!HIP{epp^)PRBERRRNp)eHs(@q#(K0&ONL zO4RcR@feEzd~>scfq_Ze)5S5wn`_J{}*vl^14q&o^@Nowcdrn{IB^pJL#zXtz1*G<7JS^<2xG} z(|z58owu)BHEZP=mz&z(<~vHT8BUbcU2YyDwkB$$>i_yP8O!3z^mcdMS+;%Jp6`(# z7yrCwtel$u{z(0bg%87DM@3nc^{q-(nLO1#F|@8A>Fkce@HH7(zZKRy`K3ISWYIP= z^)ghCEpWV^{r{GP%aKp|$~Qil{oPn+9Jw`lsr^pXzbZ-I)(^uN4pzVJJg`pvo~qPL zhMH@uT5_wG%$(z#bfk6K+^*@~+RN7TO=WyP<$mm)_|FGluvEE!t`GP)|G-NVC4Z)- zZSU${|NFT8>|(*cFS5BlIC4kJWoK5GH0*fy+$hQX)zYZRzt3~?o3cI>c+@lhR72dI z^;?4uw~4bC-*>JFsaP5NuG;)^p@WfmhOQe7m#m^DF23eYL0G?Of}8 zWA{C04Yji~K6M+GDjRKWd~N$Z)Ia?AB-ZnLf&^-qpY^Vvop60MA25Nrq(*qA`T89z1kv|EuKM)kA{J9NBeP)XMX8h5vUqbcc)I$ztaD0e0sz7J BQy%~T delta 1120 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 Z&B!cRdQs|R5jJm522WQ%mvv4FO#puj?8*QD delta 1455 zcmZ{kX*|>k9LE1+#*vJxb*?0eGzQ}~jx9`#D^ufYg_#;mW{hV3mTB9jgPaMIqj6VT zBxD@fQ6jmD3?f5~%1sg*VjVl}i+#2GdEPuPp6~C)^Z7i#I_azMw0-GbO01o`^Zq5+LmKY+QX$i*E z*=>K)1n6i&&iU)e-_NiRYW}TP89H25-Z=B{IboWP3j}5z>XkJ$RsRvPP}p%aHXRN#QZ)V9>4QTSdr0t z3R*#i{M@K0JjO!>2RY5^noJh7VqTYuEvch9Cj3o%vF9mCs6^2>Y~v-@sOTd(HsDP z24kHLzk~I~_M-FHqr~_>Kc7Z znT8p%vck*GN9#j7sAXw^6zrRT%vj!S|25WL=%6pQpjOBgAWIFj%)$YMuPdGh(u{rc~!C6qBfK*T=cEj?K<5X`V@(fV0Fb| zCa`Ww!$+_ExO&^uS)qi{zS*5WZa ztj+PzdEW9&Rr&d(M2&97zg(UZV@to&u)NsPKE0pNCQ$c4eRjsG;LMhxXyzX1m z+Oa8@n&iZ3ji{BImfPQim6@>#EU!^+M#oFVOvq3r18bEOS1Pcs^pzg^=_RZj&l;cA0Vv{AG(d8KWMgwPMG4!huFdnz`!NfNH0jXi7>Blm~*z(+jIh$ z2zXmOvb@p4DAF?=OIaU?;TIVd(&CrwmdAx(^bG%cT%*!ks!fyos*YgUn%n5jC+Wo% zL`k?Yaa(!Alk;Llo#N0*aYGe(!J+(A*U^cm(_#xFIX`b=?!8X5ImPE;F7d|8N_Klk zf9>Zcbl=_3|6r;|*Nhj|w9zJ0LqfaOMt=Q+^uWr=j929QEIe75crMiMhY~n$+aWAM zZ8gVYp^=}B3CMWnbES@@yg5OcuF4|C;JRk>l~=DV+n=>1z5);Uqb^G9v97QuE~m-3 z`xwYY1?unZxze=h4S6B(dtU%{kM|#eMtcm%7*BWxKXd5@EZt!t@L%z}*6t9hArTF_ z$D`I#7T$IV*``|$1r>ckl8CJBW@i6d?u8dfwfsRJ>{hx_UJoHlQCY=NcKXfnIATWv z;nB`k`K%iZ^rwE(z4;U6*X#2hhcPtWIN+#VbaobFOL9rjZY3L);vm|e7s(GB;^6@t z6nQB?45A1?zpqjxAf61s{_y~y%N~Uq!kmMAQrHSGbruSVvc{t<(B_tCV>5)YG1}O8 z`ILi+D7+uU_<^ShAPG&SohFAc0TW{rb0q3NfLQzWR1t9CUjQUiNeqx6`jh|5^dm-a zB8Gh*W+Gu~RbJny!~O_!(^LF@10;upppVkYqzI4zl4%hD>QUK-jVKLZF`iBp4#AiI E2K=#<$^ZZW diff --git a/extension/icons/playwriter-icon-black.png b/extension/icons/playwriter-icon-black.png new file mode 100644 index 0000000000000000000000000000000000000000..cada0ae6c09953c96489fb5bfac698f0b34a2813 GIT binary patch literal 10218 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 literal 0 HcmV?d00001 diff --git a/extension/icons/playwriter-icon-black.svg b/extension/icons/playwriter-icon-black.svg new file mode 100644 index 0000000..9e65fb2 --- /dev/null +++ b/extension/icons/playwriter-icon-black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extension/icons/playwriter-icon-gray-disabled.png b/extension/icons/playwriter-icon-gray-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dea7bea44c5f6c6d85ca82df01f551fbd676b92b GIT binary patch literal 9998 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 VpgW^?EA_u0#wm#f)^{67Gy$H@Qy literal 0 HcmV?d00001 diff --git a/extension/icons/playwriter-icon-gray-disabled.svg b/extension/icons/playwriter-icon-gray-disabled.svg new file mode 100644 index 0000000..cea3940 --- /dev/null +++ b/extension/icons/playwriter-icon-gray-disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extension/src/background.ts b/extension/src/background.ts index 14a1edb..f34f8be 100644 --- a/extension/src/background.ts +++ b/extension/src/background.ts @@ -626,6 +626,12 @@ async function resetDebugger(): Promise { } } +function isRestrictedUrl(url: string | undefined): boolean { + if (!url) return true + const restrictedPrefixes = ['chrome://', 'chrome-extension://', 'devtools://', 'edge://'] + return restrictedPrefixes.some((prefix) => url.startsWith(prefix)) +} + const icons = { connected: { path: { @@ -647,29 +653,40 @@ const icons = { }, title: 'Connecting...', badgeText: '...', - badgeColor: '#FF9800', + badgeColor: [0, 0, 0, 0] as [number, number, number, number], }, disconnected: { + path: { + '16': '/icons/icon-black-16.png', + '32': '/icons/icon-black-32.png', + '48': '/icons/icon-black-48.png', + '128': '/icons/icon-black-128.png', + }, + title: 'Click to attach debugger', + badgeText: '', + badgeColor: [0, 0, 0, 0] as [number, number, number, number], + }, + restricted: { path: { '16': '/icons/icon-gray-16.png', '32': '/icons/icon-gray-32.png', '48': '/icons/icon-gray-48.png', - '128': '/icons/icon-gray-48.png', + '128': '/icons/icon-gray-128.png', }, - title: 'Click to attach debugger', + title: 'Cannot attach to this page', badgeText: '', - badgeColor: '#333333', + badgeColor: [0, 0, 0, 0] as [number, number, number, number], }, error: { path: { '16': '/icons/icon-gray-16.png', '32': '/icons/icon-gray-32.png', '48': '/icons/icon-gray-48.png', - '128': '/icons/icon-gray-48.png', + '128': '/icons/icon-gray-128.png', }, title: 'Error', badgeText: '!', - badgeColor: '#f44336', + badgeColor: [0, 0, 0, 0] as [number, number, number, number], }, } as const @@ -680,10 +697,12 @@ async function updateIcons(): Promise { const connectedCount = Array.from(tabs.values()).filter((t) => t.state === 'connected').length const allTabs = await chrome.tabs.query({}) + const tabUrlMap = new Map(allTabs.map((tab) => [tab.id, tab.url])) const allTabIds = [undefined, ...allTabs.map((tab) => tab.id).filter((id): id is number => id !== undefined)] for (const tabId of allTabIds) { const tabInfo = tabId !== undefined ? tabs.get(tabId) : undefined + const tabUrl = tabId !== undefined ? tabUrlMap.get(tabId) : undefined const iconConfig = (() => { if (connectionState === 'error') return icons.error @@ -691,6 +710,7 @@ async function updateIcons(): Promise { if (tabInfo?.state === 'error') return icons.error if (tabInfo?.state === 'connecting') return icons.connecting if (tabInfo?.state === 'connected') return icons.connected + if (tabId !== undefined && isRestrictedUrl(tabUrl)) return icons.restricted return icons.disconnected })() @@ -701,7 +721,7 @@ async function updateIcons(): Promise { })() const badgeText = (() => { - if (iconConfig === icons.connected || iconConfig === icons.disconnected) { + if (iconConfig === icons.connected || iconConfig === icons.disconnected || iconConfig === icons.restricted) { return connectedCount > 0 ? String(connectedCount) : '' } return iconConfig.badgeText @@ -731,6 +751,11 @@ async function onActionClicked(tab: chrome.tabs.Tab): Promise { return } + if (isRestrictedUrl(tab.url)) { + logger.debug('Cannot attach to restricted URL:', tab.url) + return + } + const { tabs, connectionState } = store.getState() const tabInfo = tabs.get(tab.id)