From 29488aca767328dec14dd801839a83eccdf4f8ae Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Sun, 16 Nov 2025 11:29:35 +0100 Subject: [PATCH] nicer icons. different port --- extension-new/COMPARISON.md | 6 +++--- extension-new/MIGRATION.md | 2 +- extension-new/README.md | 8 ++++---- .../icons/SolarCursorSquareBold.png | Bin 0 -> 13032 bytes extension-playwright/icons/icon-128.png | Bin 6352 -> 2275 bytes extension-playwright/icons/icon-16.png | Bin 571 -> 501 bytes extension-playwright/icons/icon-32.png | Bin 1258 -> 774 bytes extension-playwright/icons/icon-48.png | Bin 2043 -> 999 bytes extension-playwright/icons/icon-gray-128.png | Bin 3899 -> 2382 bytes extension-playwright/icons/icon-gray-16.png | Bin 530 -> 469 bytes extension-playwright/icons/icon-gray-32.png | Bin 913 -> 764 bytes extension-playwright/icons/icon-gray-48.png | Bin 1370 -> 1065 bytes extension-playwright/icons/icon-green-128.png | Bin 6790 -> 0 bytes extension-playwright/icons/icon-green-16.png | Bin 776 -> 0 bytes extension-playwright/icons/icon-green-32.png | Bin 1466 -> 0 bytes extension-playwright/icons/icon-green-48.png | Bin 2290 -> 0 bytes extension-playwright/src/background.ts | 14 +++++++------- multiple-playwrights.md | 8 ++++---- playwriter/scripts/extension-connect.ts | 2 +- playwriter/scripts/extension-new-page.ts | 2 +- playwriter/scripts/extension-server.ts | 2 +- playwriter/src/extension/cdp-relay.ts | 2 +- playwriter/src/mcp.test.ts | 2 +- playwriter/src/mcp.ts | 2 +- playwriter/src/start-relay-server.ts | 4 ++-- 25 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 extension-playwright/icons/SolarCursorSquareBold.png delete mode 100644 extension-playwright/icons/icon-green-128.png delete mode 100644 extension-playwright/icons/icon-green-16.png delete mode 100644 extension-playwright/icons/icon-green-32.png delete mode 100644 extension-playwright/icons/icon-green-48.png diff --git a/extension-new/COMPARISON.md b/extension-new/COMPARISON.md index e832db3..ab88566 100644 --- a/extension-new/COMPARISON.md +++ b/extension-new/COMPARISON.md @@ -44,7 +44,7 @@ class ExtensionConnection { ### New (Functional):** ```typescript -export async function startRelayServer({ port = 9988 }) { +export async function startRelayServer({ port = 19988 }) { const targetsRegistry = createTargetsRegistry() let playwrightWs: WSContext | null = null let extensionWs: WSContext | null = null @@ -230,13 +230,13 @@ The new implementation is a drop-in replacement: **Old:** ```typescript -const httpServer = await startHttpServer({ port: 9988 }) +const httpServer = await startHttpServer({ port: 19988 }) const cdpRelayServer = new CDPRelayServer(httpServer) cdpRelayServer.stop() ``` **New:** ```typescript -const server = await startRelayServer({ port: 9988 }) +const server = await startRelayServer({ port: 19988 }) server.close() ``` diff --git a/extension-new/MIGRATION.md b/extension-new/MIGRATION.md index 2136cb3..f5986c4 100644 --- a/extension-new/MIGRATION.md +++ b/extension-new/MIGRATION.md @@ -28,7 +28,7 @@ cdpRelayServer.stop() **After:** ```typescript -const server = await startRelayServer({ port: 9988 }) +const server = await startRelayServer({ port: 19988 }) // Simple object API server.close() ``` diff --git a/extension-new/README.md b/extension-new/README.md index 654aeb3..e159c43 100644 --- a/extension-new/README.md +++ b/extension-new/README.md @@ -49,12 +49,12 @@ Tab → chrome.debugger → Extension → /extension → /cdp → Playwright **Clean API:** ```typescript -const server = await startRelayServer({ port: 9988 }) +const server = await startRelayServer({ port: 19988 }) // Returns: // { -// cdpEndpoint: 'ws://localhost:9988/cdp', -// extensionEndpoint: 'ws://localhost:9988/extension', +// cdpEndpoint: 'ws://localhost:19988/cdp', +// extensionEndpoint: 'ws://localhost:19988/extension', // close: () => void // } @@ -67,7 +67,7 @@ server.close() ```typescript import { startRelayServer } from './relay-server.js' -const server = await startRelayServer({ port: 9988 }) +const server = await startRelayServer({ port: 19988 }) console.log('Extension endpoint:', server.extensionEndpoint) console.log('CDP endpoint:', server.cdpEndpoint) diff --git a/extension-playwright/icons/SolarCursorSquareBold.png b/extension-playwright/icons/SolarCursorSquareBold.png new file mode 100644 index 0000000000000000000000000000000000000000..4d89fcca288388f795e29f84b94bbc265db1fa68 GIT binary patch literal 13032 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 WuvmS0c{c<60-2lG7(X^7$NUfF>D8G4 literal 0 HcmV?d00001 diff --git a/extension-playwright/icons/icon-128.png b/extension-playwright/icons/icon-128.png index c4bc8b02508b40cec8a0d73465324a9612744172..441d12d7270cfaac1962f188203598b537da274c 100644 GIT binary patch literal 2275 zcmZ9Oc{mjA7RTSQrx{yQjIAQFH^wA0sYqjKkbOzkF;lh}CR>uF5ZU90keC!Ql6{}7 z5jD1Gs5E3Gsid<0-09x?+~+>OKi>0w&pGesIp@Fcd&|Py2qq{g2mpYY7@x7?Xw;u0 zz{81N$IA3La)4lLWd=aFBBy=>fQ>)>1puxf0a$bc0Gk7VctC!$r7owz<$*Uk19sw5 z2Rk?!KgGlh$Ny=!h#*|K<*jKFr_yI~M&Bls`K7?m*Tz<|?|MP*OXMJ6TB#6|K4&-R zk>&Tn+yXxHDdV8^-naWn6TU2?j-_4)!Ud0Df_CJ01qnj2W3lC%1V!4wd9hQC-X3{r z7Ak_4a_H7E6oZR!eAMgWDFF@lSJyE9K_u4py>kUuuP*=CT5e!g4JK``bLqBV(C|hSU~KL=WR+u6QO`W-Nqt^$-7coBPmb2(F!CbOR8R>E*tUjs(C;nA%6}k?hKwk zy>WM8#_)VoHk53ZrjmE?T*_=j58#f#x1#`SE6IVo=>rmJ1KdA`I$q1z1ElCHY5FtqzAi5Ba?7*EbFP8f>bm=b4hcSsN6rCxqwr)31?q zIz?Sd3N-4gpB596;r-tLidAsUwy*Bs?|io?NbtzB6O<9V`;o;i(;`X2g;uC?Tko$m zt2L>v0mr8tjqto+P*C^)4J~w`=dnn`vn&;@!Ou%1j58%jD@dIy;nozW)(+IaUvOdo zCdo%?D(DEJGttw$+HuE9Gxx)VEU8ADy3R(a4_>bDW4rDSKhU}KrVIuS^rB?v4PHv{ zT2S#6Bw4CR66$nrPYDzJJ>ht{)MAfV7$w_B52;B-s5EW=>{I}5-` zw%-@*4VPS@i1C_ntJe!5cHVU&>zkFo(RZ@dhOBe=87f*c0+m8exhnIJG4in**u4WbIow+b#oOtb_5zR;%BQoR+5`z^RSIx-)&A| z8!_3a#nr~fC2_?^&R^R7cw|RsJ<1e}L-%h)TP(-po*4BDmhtSWgCoAKR8>fJqR;Jm zD;)2p91r(RJDc8=6=Vo8{nn!D?MlbDH#i_;I+P~^Qk*)u9S9MXX;qHGdNMK*B8?#; zG4b%ggh19sYjWb?A?pubH%9{Bc?$PAn1v)jV>Y9WB)(6-qatloEd@G$z@Sp?Tysgk zZ5huG3;u*9Wv+D_d?<#hMJd-mt=bO^RKznTfun^#D~ zL@Z8+iN;W$ZW2#snsl43__JxQ8vZq_8MZLp%B9F$Vd6V+rF84Y7fX-+vTf};hOW+< zLbJp%rCr=PAE-VZRSZGdhmU1S)?8ZeB#IA1p@VyQ9A~M{b5zA zSlKP@pa8BH?gPG*m2Kd>cU`rLC;4KmjH(uRT!rDm70x59U8RhN?FpapsktwYrVd*h z_?QZh_{eYjAdZab#pVz$G6I>4XBqt(=9rL?iu`$^_H%V0zu(V{@sgxnecmhOb;>~g z2mG&*BRlDPZN*Ww)!9dDYjO-f{^VOl58-+xNNJE?K{j8m8Z@(!FCxx27T#3zfFuvf z`^UMBod26im$UcpN9Vf{QNz=NMZj3j$yU_3s}+x;y8fP|0Ynp{D?smcfWvt bFeoGzt@)oJGu5V|90r)+%+JtHyT$wqZ(j$s literal 6352 zcmb7JWmnXV)Bf$U^a7HCASFn5m#lQBba#i+y|jdYAX2h~l%#Y>xrB5}r*tFT`}h6^ z&ogso=FPmAGv~})6EPZU@_0DUZ~y?nQ&f=A`e)()2^Pjb-Sx_1@Snl3RF;VMe&-7<*EP~0QQ-e zyPEv64$;N8t5@Htw|oavKfM1-X3m~l`|-KlSi0S_&s^fcK)*57v>O(C>Pr#51Gt?1w1oSgyZ zedR~@)(h_;^n;ic3U<4En>p%V?e!pfb?7B!W!m_c2ES%)$S$j#Pis^j{P`2Tp_~;* zJ9e4N%F*$2Bcv`M{4dqIXz8}>yTYjn(FDN1yxDxgJ3u_h7@Q%Qo^qaqx`dNq53CY4js>CT{=bOAlkx~C2O^GnfL8-s^NA-@d2 z12s8#X<0Fe$-|GX9H(I01GP_nmHN1}UYpcFW&S_{f+y&@Gf5UJYZCc5Hd)(Yw3Txg zjxL#l>bhz8gZD2!Cy;JM%hhlB^VQgyr=IJ2DWle=0DTGPWA58bO#V+f2@_JmB8$^7MeThKdvSR7&RO$-;f)BFiBerbg$JfxA)!{6<- z|4wHBDEGT)u**VQnK z=e+{3&E7%)cmZZsvMwnqU^W_l@7CnkY?4tc2Qrjww-wezTV;tjta{IL`(x!G0tq{z9$P5qgosqxaD6STSl7GuM3(OSF4wsxobSb#Rx??j z@4I$ZRMM})hnVoEDh1Ikl4$*5JC;$5Sau*7Z#3ki5$|bCQWrZDPYMCVEnPL#;whse z)GdtXj}wjT$(I{RZaT}WXM9prXE~bW-ybY{KegnyT>iA{>Rkz$7C0TYh1HYaz=trc z@Bw{I9*VfHqDO0}?)P)tXvq{|a!2dzwh@I8;D80En@D2a-ZiLIR+s?yCU2>R=L2)- z@p00IstLoLJ`V{416RCrX5de#f)$NG96KDSpXH*A)|F;aQ2o-)Z583wH9fZA<_I?% zM(~H^VPSCuP!U-S5ICoO@JfOwyzW$$;q|IMptE9z?R-I-T^mIFE5uT!faPGo?y_=W z!KTq&r9WdFA54w~?o%}2r{pFlBOhS2GQoJ^S&5Q7;v;fRBe6_1&NfsZp%~9rrZ3o; zcv?MVDXC&+9_BzES$&_PZ#{V8h9#P=uq#|TC=Zf)-+zo@Cj$aHlcBQ4<-kYg?Nx=~ zS#Kj5NLog~)Wu$TKZ$NEh=hQK7?|41djl?`U8HQ^_2s5VV~iOnYp&@BpDfEL{W@wQ z#{{j`6~xOK%blXppGt9gPC0Qw%1e}l-9{G$uLeD~HS}Y4hggFu>5r9d7)6Si8k1-j z8esM~5t$MXlEh4(2FSF%3QL1&3nKlc*D^SbJa8Q>3T_@0rm%8{Nmnp61YA0QxCEyo z=heOkW}qjq5WSAG&!=U#UB&1Ayq?@t+Te34Zl*V)7_vF;z%FuRov}6Y@{HiSOc4F% zy6I~EUM6v*l$tNE(5LaWTzSo0nI1IJFggf3t`<7=qx}H|EH74J#0d9MJ$Q^J<>$etp7f`<$7MI_~2UO=rJHdt1+{eH$ZV7MWTYQ>vpZ&YCo zo$l=@8#?D92K~Dow+^vKxC|DKoGvxXIJJEiVVUtHTNVL-d+W`*ObMF1rcm)wmbkk1 z5|17pA@ksE$bss{8k#o=44UzYTgEL}swd*TH6(u@%Epu*(zt<+o@Aabe!dzY@t3qS zUjJq-^yCGa3EBs~4sB84?HF{o)K@x>kp`${q=eQ@luH%@ZOsbc#PRd@86l~5E*L{s z=r8>gD@0WBL=O~Eumre|X~_u`#=xMT8AhnAE>3);D~b0<{L7)f}( z{Da@1cD86ZODn&jX-F9V`mH%;rMB~hTPt9W9|Y;-7pdbLS9)8u8qQ&KA6M#hDQHj^ zA0>71c3V7#dFt2HMMGW$0@sl-I5!La9B@gSm>sVR8oX)u+Kv5D+5Gw`=g-rcq*^~U zP&xCku$2|W{OMqwICsS+@YyH!q|r8{qg=wCdVbwMpx0r1of88nyvgius`rS9Q(=B| zdk33~BUpNvstV(<&+khTXZaI3S`H-PWBv$6wRF!2&bNT+{j)RD&}m!5lTzflFxN*h z#2?qm6v1t1C*BPkY^q`iNnXR}OPl^DafqM0FJ#x)KLg#ek8m@}uO)TXywY25h_|Lr zYQi<%FqRuus#R3b%Eb2BD4R~1lyZ{t50u-GfJBpP<5pN(@IlqkCTu zu)>g6p>gugJs6N+i46Y+5|~uGTCU`R1M_3*{0>eh^f0S=tyUhX)MLWc`oyQ*yC;?u zJ#icVk%ebFVS<{0ue^jd$*f;R9LdX(7TI}zG6irWS=KL6gyY?mMI_Z`Z5*~D()~Y2 zkcpOVrUX?^RZNNX{1ko$rw!J7b2t{w##{J6XijAPE{TU64KO%o!+F;A^{S%zg>H3t zeHmL$Yp+KiUP5!xie-BV?unCCD^~Z*>Zp)F-Iabxgsxn0eQHJr_G+2TIXV0oG#kl` z=8nka1xa!mgmKPf#S9?hgX3Oc&!7=0;F`VBsilYr2>DENppzbVFr^83PMmATJ@mXN zHK30p>`Zm60vd?4ba1lyAO*HVemrXiLV`WS=H(PM`blKACpzR?0zfuTgAHqzYNluo zLTtKX2$gc*sSfiy{5gZ%6T;&va?HbD`ITb3W_0??EYE8E*lve#t|501$QWLaqQO#F zS`MeH8Af>v?me_)U2;3CpPZpG*-`UHU6?>Wk?s^Ov81rrWeK&{xt@F<$0;sNuwC81 zo{wiFl;pC6vgAMCnk4P0s?6r8I~F16kslEv$v$^u)7VYel(I`uo7 zm|ffpj)d2{&mWiWy(}^hQz_Hh^_q8Es)DT7FN9_uYFxWNPKG|uO2C|2Rf0E|dYZ#B zkQK{5F0sU9)-Njn>^AjO9Raa)_l1y6^nf=f@2%FWbH%7ca+pt3jpoPm65XCA2?=nG zLsvoErdEHRV$Cb#)&Jl$lov)F{Rr~c2%_vno=I-?ar*CAgW$r;FWnqUmORwykuoV7 z4B^-)yw!$7!g`-nS8ElJ@Bnrzzb3ZhcmIZu0MM-fp&JMLdE42% zi_tx9*>R8tY|3hul^`}oyyT#W%E>^*j~1bPq!guKPcK%25rR*9l9D7C&Fk>tYYULW z)9!KXfQ2H0?*os@wykpu`^UzuZ+E$Rw$<75z*b$dj7DvL?|}{nbfIE;6{*t2fNOVO zEr**xjL(ZD{nO$#LeCUZ;eJ1{%X6Md-3cdv7yT-C1mL@!Xy$aGN3SD0!YcPAWwoV0 zaLWqam&R>j6m^%}IcqPqfB5!Ae2tBeNS%8v1;xA5vK7$Y*(_^lg`2$(!Gge}km2jy z>BS+qh^XW-epYOdbaVPwB!l*H1;ZNU+{r+Z4{)$&y>XW}YYI=oVIXm(C1`iv_{zdm zjgT)v))Cg!FOZRNd>!l%|N7iq%EM}SxlvoyHsU8du(woI*yd3UP07Q ztA9T!DcWl*m{kXU*VsLxpakR&b0?xK0p16*JR%N9^=OdANz3t7oZ)A0d6`(=-=oOg zB`@6uEANcAC)E!`yh`WT5k{uC=G1_D``g}=n?tc2C{fCg?xywQjYS#xRO{Z~FsX+z znZ$jC>cXEv`Xqg((*;?DR9+u*8vAgG)@foHPJAe-eNly;b*Xi#9v3RUf?87#Gs8u^ zKb{W6(ChP@9UsubM{=TC8}9@6d&!)G9+9B@hBf!xiM0z$N6W(~oIBe+#~5sFWA8Qw zMI9rY!Ku$uO(6Hz8!8*~mDIH*9i5*((tlV6mJ}&KTM$5BSWN6s#BT8M?9OM8MkO#7 zTNI?tqjV)t*Yg!I#5O^odft+#5@p+*$abS!mB|J!)w`gL4ET(ne*Npt@#>Mm?>ae{ z<;pm~0%!|_wo7;Jh-?uRP;sPh`r8~)Jv7%41=~jTSE8iOzc{3LK~@GBmr9Q3$8FmQPBNnF)=1brfo!)xBJ zY-WGd(-2hOe2w3v`Ok|fW>tqQJra)ktbg!Az!L6DAiANx0`PZ6cx+e}wz(8D_}4rl z`ckaPx8ARz^ia)Z{U3MsqLiv};4ce}K9cZns3b~<46dOjHpi%O+F(()b!7rP)bRdH zS@biX5Gkx1MPame47<*_x3wr12REvd~$A(rq|e zmRp`E0hjH{Nlx|JH=P!r@Jssm245>U_jl-07>EJ9GH62cTYQj81bpKLw zDwKggRT`|HrXz$v>_$ZfE@pq_inz@l1)0M8}h=8Ts%JH zETDpMhBY=zGZ~YsW68^aMF=e1=yGEIl58VOsN2b0hWvvpao`MN%ho8T1A$ZOiYcGA zjs}4_k~MAamO{^3x5XC9b&3Yu54w3-g=7lGF@SWJZUZJ%Lp%?z@LN+H18^m4OBIa8 zuGP~iS`wLe4_K68i`T)2M@!!Z_?}r2&6Kx(y~MCx#;4sTrvAF=I{f{Rq!;OyzI}xa zfltT0eDu~d63u)?K$zQ9hp*KmcgccE-|<0bLzoGg=ub-nLC-oDKUsr9tjrD(RYenW z_a5?~|Fte~-)~^^NE84%lK=&9;k!q=-5-ZqurSgU*bx&AIzm)P4nq zi1&JWf89+T&VuQqk7Z;>@jeWOBWjbG3xm!i272g23QXifMFc17)*ElrXa>8xFnN;< ze>b^IQfkE-k=u(nXpW=VNkj&4REQiA)oQwzvE~y8>Vrc9J9Yc$EP5G15r4~~G9^|< zrgnLGYk&WqUleFQzqJFb!0A_n<&C+KXhrbb10xoe2L`wdOk@2c7h*uNlp41X2mT!0OeSS8zC-%fYrFVRM zrM=r?n$qU_$9T3*p_G0k5d$kCN#m{PA0B+ttHQ&7S1t@awbr)5Nu{UkrORiXNAVj5 z_eL(kk*@NdGcw+O=^bb#M608lDq~@Wts#rSuxKP-Se#bZ#@eXd! z^Djm%G^L{c3D_z1nM;Z;CrPa9Ije$0w-=V480 z(ERSuk?fo(ze;+2tTXeWh=M1Dy5l3g2Dij+;zuSVEpDlk@!j(Dwd}8`15G%?w-VDk z4)DXq*3#I_H2L@HH_M@Jxuu1;hFSuiEhSJ%N)+Ve>2?XSxCPcrZ#muoq{*o8vEQTU* zIK}cZ<$O;S%!>On($OTCRLy|e9foC2@!{ciS4MUkUsV0}Bw`|!RWBP1{ST<@UY{S6 zZ)yt}Q|(}Jh>#{Q=k1PX!N^obFszGLSa$FmfRDoSlq;y%Z==+sfci0 z=k@u{9hY0(19s!z)lyx!1({w&n=F11xuwk_vIUyY;2W=ul(5v2K|0;$*5F49fHTGaT6w)FOK_rd&O{f<{wIdjUXE6nKRwtbq=a*V$ceI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>dx@v7EBi}s0WJ~E-FJPu zfkHPuT^vI+&i7v2>&5IS!ulXTEIECnKvS>p0k<1UwJK|4xwv=RH1R*sej*yQ)PH+Z z>6@JGm(?%0ePDN)xN(N*yEaza?K=+NIeft)_xxg2h=&SKMtvQcV zGMMc4{_hZ;)Yc*!Y-?cjYwASPBuQ(dl4qxuPESkd?p-@odcEG4wXPSH1fNB}o41|CkFaQw-i6+lm_mbgZgq$HN4S|t~y0x1R~ z10z#iLqlCdvk*fAD?xs@?gL*N09HlPL# oxD6$lxv9k^iMa)6dW;OLObj8GJlNFVdQ&MBb@0I@2$UH||9 delta 557 zcmV+|0@D5U1G@x}8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)0005-NkltIBJRY6P!LqK z>O#SVK~05LQtSgvp<*Nwwax3Ed+!++l~AE^D-O(N=Hti5%zp>`_eGr+$?35tEW!cD zl9}REvD!%|b{bwEKbaQV&-yKOuvYiV$(y71)3?)uJ37c@GRCbv&J7UNNpPRR)V<_- z*^7rhncIbK+-0lFS_kkMfD7R5!il*HMy0n`gt~SftX+fv6Jcey2O)^9Ao?;i)QHl} zfruR;0EyoX27ev^fGEz)C?E7ifV?`1I}BD;BY@US%G^B0QhU-AnuPd@HRlogVsXnm z&9!f^tmR`3wsx_e)XXMnXaEQUZTh~Kl$Ie#z{37UgVya;W^8l?k>_o|mGAadCh=nn zOfOz_2TK6p1kr-q>?xSq{lH8ih)!d$F;0ZL`BV8O0DnjTsFW6KsgZPRSaO!YiNh6R z@597T_|oe~56?T_V%M-{x3JGUKm=bJ`b_y=d9w`wfM*|<-^7MSOG&9y5iRt)J{43A zmQZp9b>s5FRQ~B7Ip_oc vfK)CQbtaX46aX4#>-FmF?8e{p|E7Kc9>~C;hE0yC00000NkvXXu0mjf&YTb3 diff --git a/extension-playwright/icons/icon-32.png b/extension-playwright/icons/icon-32.png index 1f9a8ccb89bdbccd6bdc1c7f945f72eed9b94017..bccb4ef80be30e04cf72e7ba4d9aa6af67606482 100644 GIT binary patch literal 774 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4zl0AZa85pY67#JE_7#My5g&JNk zFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{XiajiKnkC`%7*CE)mV$cYV4U z7#Lr9x;Tb-96x&Xpm#{1$nlT;y}~_9HN2FUMk;XXrUmO|YZNFpaW8af%DimP+dU{p(zOv_=5`qiP z7>5W#fT1r{bjQxvIh|zrC9jBx3L)?bTa-DIUhk$153=KV9H<`{KSt|CHO^ zg1aB=8UDJh+0MwkNpNKjt7Z7vS-}^kbDWUkFg|h8Wl3Pb*0i(Sm!F-T(c|jirdJ|% zRav!4dTP|`z0dbXt(j2Top@l9o6D_2UB#z`uMHgz2Sv2*;GOL&vG-}sr7#u78QIr< zT&TM9^~lY~%v{To|GD&CstHvT1sAIF=3H?Jh|&Z zpZVJC;B7hPLV_7B=bD<=asNKIV^Y_Fb-&l{I4<~i!A;>=>Kj+xE4`HW`$3bj#3z~5 zy&HE2hVwH1&hjf~sEW1xBme14>R~yTFSGt$n7L{0DtT6>+sh95uDLPkTHT742HVvu z8RtKKyEj4kDwEl5U(={lkH0_d-LSU(=ir8Gi-<0047(dh`GQ00v@9M??Vs0RI60puMM)000D^Nkl(t!Tc^~h-&~}Zw(e@R9tA+8nqWS4>kB95u82jP=OXv4Q2x;; zH#`bJN(!voSe-GvrLA#{qj`w}L@>PiPj;IB?LXdZ=uZ_OB?VqLM?aCUS5EaYGh(Aw zB@YhW&Hu9KT7Th@Ck~WdDAWFJ&3P5**tRX;_qvvS_*I>m_KT&x^fBtGyo{vygB`pAML~lkiZClFf-D?$W*Ys3K9gyUC;dc zrg?P$@B=7epk(@p9G}{ohz9_lo3_~Duup;mPzcN{s(+Z_Frzy?HaV##EKQjqCGB*_ zb`m-IIKZ6df^SX(SY(B6kH9w+1P7BQFvC&`9U0>Qx}n|kpDF&39I*u852Bm82gYQ0 z6#!`FyvH9K^Nlno1_6M&x;m%Fl?f_Aq#V%wL6+wtB)c7E#9W0wa~#07oa~Xxmaj*4 zwC;&+xqp7b{53BqG;*abAhe0SW)71=-^}g=Zs^|9oscqd3yw$hi}B+MgMQW(y^y8z zxd2qYVus6%VVx&cab3e1wVobRk%PnKt(mM?Xr2lAhxF6xo0Z4aS1X74$Lw}6Lh(F? zsGACu0Jx##u^5Q~0PwM@V4*sdqdrs20vO)|1%H)PQ)UJ$knWj~KWO{p?%odC*ISK# z^Aav*cEw{AyC;(Zw4VRIt=^`#q#XdTAVoB}(v;)|OHX0}%Nh6_Iyd8;-t|-z9&kduHn!MFqR8oXDy{&C&tD^;-e0EBAfR z)!e_#>)DI-2Wes9YS-X*24HXyz|8yDXPDUA|82iL4R9vW+6}Khe>5079)MZ_02-); ziC0G)*X;DiaPXNsiCE3h!osI-yRonJ!hf3b?FB*;mCUGQi4w8(UK4W1)=xH~cdzZN zubHLLEX@EsTd{M0O%CDP|1V7WS9kMpUS26*P}_D}8DD$BL+zSUm8e0I}jldIxj1uu68g`>=Zq) zl~P7L))O$Gd6IsD2ZRutnyczN|EW*Pe?)64cD%-hb0oU4D{8yeQUFNH2_W$eh?|Rc z5fXbE4_v-HSG|-00AOv!j#4lmc3KLDymrxj!=K}gvP2fZF^tOFe8<~>D@#6YuC2W} zU#*7%0D$W1YT5BXt!JnTL83r`bpqO<_=o26Cx3s~x(l{o|GE7Q^5Es&IVj<{00000 LNkvXXu0mjfeC1Du diff --git a/extension-playwright/icons/icon-48.png b/extension-playwright/icons/icon-48.png index ac23ef078c22f1406d205fcc5e689713a4d0eb4b..ed3089ad5547953559a5e7c3658e2672b59c1a5b 100644 GIT binary patch literal 999 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 delta 3806 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 UFc_6QQUCw|07*qoM6N<$f~*r8ng9R* diff --git a/extension-playwright/icons/icon-gray-16.png b/extension-playwright/icons/icon-gray-16.png index 817a832e2a188dc5b64d34aba079753388592cac..b4d6f39cb66636e293036c771fe7c737e4995549 100644 GIT binary patch delta 377 zcmbQla+P_4RlNY0xRr=s+%yIThNqq`jv*T7TQBbSI?Nz&{G)%;nP&nT3yU2KP71_C zTkT-664|0)QT9P`*Q;WS&c%}(?V7XQ-PL!O6inf)j&=V?2j9S^++{LG*Jnl;T%w4)NwIeBg=ENoe$%>B;P9Co}S6S_@^5EjmzJ(k2 zn}7zylm@Kz$k|t`Q|Ei6yC4C7HRY#U+Wk1q?<8My9%khPn_vM#fgA77){dwrq+A P>S6G7^>bP0l+XkKKY*E) delta 455 zcmcc0Jc(t3RXwk;fwFW;a32E$qmrkKV~EE2trHJwHy6qrv%i1;_q*E9+su-suZ4N} zT5GxoPQDedV7X!TWa%tR%L$*@Kd}GcH@L)CRxH5IE~BA3Nv+**+ury0<~L6|)cgFK zO|9Pf&jv`+u)aCIFFaO<`nLQ(KLB_fDarI1*#R;+XSwiY-igjNrzqxQu zx7WV zn(I$DxO~{MEo`NG)lpM*@A~ueP1Qerw6ss#x>ZT6kYW1AL*KS9Joahk(EyX2is@gM zKK&~{t>xkbIVMY;@c-}DluMXJpZa?sMS_8WLAAs+q9i4;B-JXpC>2OC7#SFu>KYpA z8XAWfT3DGFSs9sW8yHv_7;tKTt3%O{o1c=IRteM~4bfp>9%5u@WnyS$XbI8b{8YE6z1)x!uRwfo!#-df16X`H6Gj@)fC96L0YwTRUm;Igaebr842#T@y8@6V,tuoPF7cYsZq6;^SWj0IR^!VGLo z#We#!k7JJ6V}F4)mYLH|0GQYzz|x9l5u0AHZ*#~YMJlYbq?Mf^vYrUuLIuoIj@;H@ zpJ)8kY=(%9Yo;74G1et+#Yqw0jjQ5~mD`^3n(Lzj92T_iJ8W??_T(jiN!B77yy15e z04!4sk}qM>=RF(o2mu)2N9=P{0C>X3plzybaIT#28GnQTZwO%GGK*R3Yg|CP$i}HMqd=00Ce!U76GKVf3crthkN9BuJ}DVA)rN4egBoXv!t2z;MgmTFNqyw-GdAU9FdsAOjo~F*Z~&Fgh_eIx{mXFfckWFj2q=hLcePARsnWF)%tZ dGdeXmD=;uRFfdZIvR?oI002ovPDHLkV1g_98`}T? delta 793 zcmV+!1Lpkv1(64kI)4olFe4jeQ;q-t0-;GnK~zY`?UYSOR8bVifA_uT8^>uf(JTu@ ztQMj41yV6(jA1RpHX+eU5{ja2ln6mV5f!wFkP2$!!rBy6gczi&=nJ)xrkP}{5gcl? z!qn-FZ|-g3a~vm)3Zji?cklmye)pVv4;L2V|A&}Q*p|B`q<_cqtDBR*259pMWtXke ziOnPN=AD04K~4Vp9=mMH;BL=7cqaCTfCE>TAGOn(u5tp#_3~?n?B4(!^SWzQqqQen z&?yw7384&I!hph2ACfMjXjsTKZ^kXGdtfh0uG?lPDB8NRG;h) z)i1G8Kyq2-&8mhCw}VTJR1P|z#?(+6@ankb0AT1DfPBn$SBF-v(k-OS#76tX+5)M$ zfbj>NZSAAaf+`L`=M+Z+NVGBxVwVV|E-G#67BX9s!hZ#L^89aW>%Tk?hXK^xS0wN7sksetUof!1^#G4Zp85KaRReVpM_#pg9vjCFe@%Q>C-8M5OUX*%# zAX}!_j*`4J((PC2qCI#Rw`*N!HPVYefhiI4el8H2B$aV9lN!+ouvP~}q(Z`xe zm%;$R9DmE*d+tf~Dr2|Wt@)~67x)1|$7&2FT!O!#epFvwiadpr%^2EO(cfMG0*wmNhv1 zDstgrB-`~10MzSoKfA;#atO+MT~Aqve-l3d{oC(!_vbGqlUf2D6f;yYI65>kIx;pZ zFfckWFbOO6ev^v=92GD(R5CF-G%-3cIV&(QIxsLp9z_ zDwq(^#4;(JKn$P@D^m?5F1ip$;veGRUHx2I?Y-W$a14H@yZ7FGKkxnS_ujpCN{ow@>w^6+9^kQr`+rdJ;=zpzrJy#8#xWVv zq&Pw=2jJ&A?X=KHh#-DcJVgK*(j2l+f-P2AW`m?1z)LqVBGj4;?Ui7OY34~A3*EPj zcR|J&=O%$O*h7G3`nW`#lpNq?jAy84u-2v0iOQn>PK;U9!|<7Uo-c)Ay7gNf;3r1q zx$OZeiQzW`!hhUx#2z5Rbu*xYTE_sjw3`7f4#Zzb;fA;r^T0);q@l(R3N?7kMqI^p zl1T#KBP6kZ%M5P9+$BmFUm1W9J`Rllm7uB74m11&)|jK72>o=?RAL~5sQCad6_QB0 z4Y1FAp@}GcbV^2BD8C4+0C*&EuA!N=ypV0O$p>2Lp?{Y)0u}&OIEyTDOV(8{_au)V zvCK>E)6aW;6$N<2=mo$f{q#hsFJkbQ1)k8&ry}(^KVhp#UtXAqWu!OwNLE^t^RxbB z`slZ8QO%%TR@r@%yJ#v}7vvQWY@W9TG!ZRQQ^h!s?PrA@K%q}MgI$a=Qp%*W-?ntp zDk;_Y&VRPOeJOwtJ<{@7hWXJB_MKsVu8?# z@68C%&jJ8JUNgcr8gn@WOweF@Cg&$ca7@NBNXh?b zSYg*Oz%I*Xz&dfq084C`0ZFDgaK!$AX+7zU8Ss@!2i`-LN#^xi;|WJ2j!N6P&Nv6W zV^i#8PiF=|ibZ}rXzQZt-xz>j7^bbp9H^IV}*6| zf}>dct8k&BqB?&N7t%=DEP*BH|Nj~C54J7C?&~X*FO#?g9TYZHF)%tYI65^mD=;uR zFfbSS;xLox1RNDHHdHY%Ix#moGczkNFgh?WQNRd>lNtpeAU0GnFgh|bIyE>eFfckW UFjBO#UjP6A07*qoM6N<$f|mKH?*IS* delta 1254 zcmV7E0Fwr67}4 z5ZIU@Thd8Y5^SpzSzKaFBpG}1*@q<>VZ)dui?}5QH8Cb8#`qv^KA1SOB{LD_&o&tu z@@LHu2BU>B#w<)Mw57NA-p_~LwwM0FE@O!goTq!f?|07coPXcxxxK))ZQHgzb|cxr zPMKG{nsMIoVenxIm~21|rU&OE`p~nXx%TqMLckm&2LM1Q4Bk5N_LfUz=c)$sZ3$mD z#WjC4x`iF&zE)JM_SdV{M&7&mzH^H@IL<9h6jVrQZum8>o9*ZrdIW-2v)n@84ea7F zBJ!bMz#kaJU4P=Eey}jn66_(h&`R~~0sv^Dz;_PIHS86B=(GR;$M%vYIEh)dK_i0Q zqy!yMic%Z~Xi~+b0E=<|rKg@5gatqpr(jsH07Bp(Wk}EBiA>DvZhe;wC_|P?Br#q< zTr?Q~5Q*0YFjOO`HPvNSem0t3At1AnP%4OmflwRn)m=_+{}%!IeFFjL^6ZBDkTl~T0%S<>MUjv0yI*&$ z&RO3~FOFMT8Q?Y}-ij>e?)QUFP$e9C6Aum%T z8I}5j%YWDJ}wxo0b^!_>PA(4#%Qvc*x|J^v*lz*DN!-W$9B^xOR z0Q#l+Of^I4gB8yPeCro4(#wJPy6UX+b7Phft=A_`aZCJ42JMF1`qi!`@z{5r8LqX! zq<=79{_JC*#H=l0lu?VkjUOuz9D!FS8et|<{!Oc|(5$IRT8H+euGCJ0*>JV8k}?3m zcFGN?m32YrRodrVS#WlVfTIG9Orz`~2JY{j6T5el0wrBwdTunXB_@8{RNOVvuL*yCiVY+kWYNHsZu%r^qkXKr7r+>?n z)u*G&MK9_7)j1J805B*`x)+BY9O;}+ADiX3spDnxJ!9PCRbHT-Tv!* zrpPP_0B0FJOA_V6X#E|Z4?9TYQEF*rIjGCDFgD=;uRFfa)# z_I{JN0~{4FH&ik)Iy5mlF*z$RFgh?WL**(wlj#E>ATv}kIXW~rIx{sZFfckWFc_6Q QQUCw|07*qoM6N<$g8%GGU;qFB diff --git a/extension-playwright/icons/icon-green-128.png b/extension-playwright/icons/icon-green-128.png deleted file mode 100644 index f877d0887be462838fa9761ef913002f8df9cdd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 diff --git a/extension-playwright/icons/icon-green-16.png b/extension-playwright/icons/icon-green-16.png deleted file mode 100644 index 9d412f5cdba2acd236f38cb5cdd8655c7aab4aa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=IjczVPIh72=EDU1u76Pml4btHJE2u8{;ogBcn50*D1_- znYYPGKl7zthRa;_g&V~ryJW=MrIeNQiI;c3jDDJ)nkB3G;? z)+nX3#IWAmg1<&cVWN^;kvdI zgY3j>q;(sul(Gy2>qJb}nWhFg_FAd67|Mx<3Ft01(hP7BN|fNu;TNbCl5CdMoo1#T z!XlfBzkm23z@{bm zQRM5VZJz}{i%y^LWdakIhqbl!Z^qIer%#+Zsm;JDGIh?>&^IAhubA4{m>fKo#md6Q z+Me}YZ1%9%TdE^*z=yk=&0&E*#tgJ8C(lA-MuWuV(s zOI#yLQW8s2t&)pUffR$0fsv`Mp`os!afqRXm5Gs+k(suEft7&)r}nox6b-rgDVb@N za193LAx4H)CWcmqmJkijPqlzak3j=&LrG?CYH>+oZUI~m$P!B{6ALS2Q-~gksWzar O&fw|l=d#Wzp$PyNJo=dc diff --git a/extension-playwright/icons/icon-green-32.png b/extension-playwright/icons/icon-green-32.png deleted file mode 100644 index ec35b3efa56c0dd19dd45bc06a7e83697fd4ef70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1466 zcmY+EcTkge7{}j&ByU0%nS_x*AbY(Dgba|Cgc$-7_Rug=0YwlZ3MhgI2#6v$Kr32A zRBWwMJA|IC_T&()#R7oZtpG4@Pt{HUz&Z#3o*4l^)dc{Q($9vL z1p$CVae^*MYj5BrXJHC)#0s)xKuXIIA#+j8eFAw}A}*gmsd8iW%JU-v@N0>ToviR- z^{_GShwSiy2*|C~ld+rW+r?q*Vba3fwvyZq>a&&86| zgl!@ZOdcL-M2Y&P;VJ4m83S#?@Dj9~Xf=V)!sQV8X9Xo8qGk!LB}~{P_r;f!=$n~X z9vxGKBh--GT0B(R;10F$yA_dNqy*AxeZ3=R8VD9IM4Dn48nnxR*dr$!N z$-F`oZfR`OQURfk>|X6fZla3yk^3}auRs|-gX*%3iZ?Os zNKORs;v>);PgE|JyoD<1l!**6WHA@7rD5{%q|L6_D!j`kqU$D4Mwt-G(HmAK2@_&` z)Is#X0Q(HSnx#(3a99c)kqW}nL6d+0OM_#oajkr61Do8zqjYj9ItdP*gFsfG8`z|F zE~S-2hJw&w76MU(+|D6yWs|7U&d4$px)QsMOWDRDZ)6hD@gSIqglB@V46u<+s`Moy zl0bMaV!bZ`Oaj-lNMJGuONJxMQLTJeFdGTaK)^CViU9*=A??db5xCT|NNarXPATvT zUxF+M3(EpQ69Q4}ytufyGqy=)|8Tp_iFyNov%EpwwwXOGlhCc16Ckza>Gb`vdlR$u z?hCesxrLpJOFCz43h$orKX2HqsqHrF z?26)9%fh_P`tD8$tm5*ciP20swaz}@C%Lhanrm@0OZ)6uI6h=vII2Pv+&pHG)BhE#ZFs zp%<>EUu5+5=KhWE@S<`Hsp-nOd*zR>9l#n+8@-8~S|W!hbf~`+yI0>ms7rS`ZdB^( zcu{rxRhkPedrtNj6ciOs>beKrct1u^RuBKtt6lXDjk^2g1IRQM;gi=HcYq@DmpO8w zCdKvKD~wqFtjKH{2a4Ml~-o6J3tCa zWkQKWDDg{@C{+GZl{A14K`IDB@ZZ<`4=66lFZ{IfBLK;hq!N|CL?u!F3#cFQ?8g$| qd{i(O7Mse=ImM+PnGYgLmA^ve_n!!N6YIL20iv~f&8cwXmVW^9LHGUu diff --git a/extension-playwright/icons/icon-green-48.png b/extension-playwright/icons/icon-green-48.png deleted file mode 100644 index eef19db55488eaaee9eb7e0645905e7602388a6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2290 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 D5b_#T diff --git a/extension-playwright/src/background.ts b/extension-playwright/src/background.ts index 7ba5d31..df0802e 100644 --- a/extension-playwright/src/background.ts +++ b/extension-playwright/src/background.ts @@ -2,7 +2,7 @@ import { RelayConnection, debugLog } from './relayConnection' import { create } from 'zustand' // Relay URL - fixed port for MCP bridge -const RELAY_URL = 'ws://localhost:9988/extension' +const RELAY_URL = 'ws://localhost:19988/extension' type ConnectionState = 'disconnected' | 'reconnecting' | 'connected' | 'error' @@ -42,10 +42,10 @@ chrome.runtime.onInstalled.addListener((details) => { const icons = { connected: { path: { - '16': '/icons/icon-green-16.png', - '32': '/icons/icon-green-32.png', - '48': '/icons/icon-green-48.png', - '128': '/icons/icon-green-128.png', + '16': '/icons/icon-16.png', + '32': '/icons/icon-32.png', + '48': '/icons/icon-48.png', + '128': '/icons/icon-128.png', }, title: 'Connected - Click to disconnect', badgeText: '', @@ -122,12 +122,12 @@ async function ensureConnection(): Promise { } debugLog('No existing connection, creating new relay connection') - debugLog('Waiting for server at http://localhost:9988...') + debugLog('Waiting for server at http://localhost:19988...') useExtensionStore.setState({ connectionState: 'reconnecting' }) while (true) { try { - await fetch('http://localhost:9988', { method: 'HEAD' }) + await fetch('http://localhost:19988', { method: 'HEAD' }) debugLog('Server is available') break } catch (error: any) { diff --git a/multiple-playwrights.md b/multiple-playwrights.md index f4d3680..7ede2e6 100644 --- a/multiple-playwrights.md +++ b/multiple-playwrights.md @@ -23,9 +23,9 @@ The relay server acts as a bridge between: Each Playwright client must connect with a unique identifier in the connection path: ``` -ws://localhost:9988/cdp/client-123 -ws://localhost:9988/cdp/automation-bot-1 -ws://localhost:9988/cdp/test-runner-42 +ws://localhost:19988/cdp/client-123 +ws://localhost:19988/cdp/automation-bot-1 +ws://localhost:19988/cdp/test-runner-42 ``` If no client ID is provided in the path, the connection is rejected. This ensures every client can be uniquely identified and tracked. @@ -110,4 +110,4 @@ Multiple developers can connect their own Playwright instances to debug differen - Each tab can only be controlled by one client at a time - Session ownership is "sticky" - once claimed, it remains until client disconnect -- No built-in session sharing or handoff mechanism (by design, for safety) \ No newline at end of file +- No built-in session sharing or handoff mechanism (by design, for safety) diff --git a/playwriter/scripts/extension-connect.ts b/playwriter/scripts/extension-connect.ts index 79cd967..b787a3c 100644 --- a/playwriter/scripts/extension-connect.ts +++ b/playwriter/scripts/extension-connect.ts @@ -1,7 +1,7 @@ import playwright from 'playwright-core' async function main() { - const cdpEndpoint = `ws://localhost:9988/cdp/${Date.now()}` + const cdpEndpoint = `ws://localhost:19988/cdp/${Date.now()}` const browser = await playwright.chromium.connectOverCDP(cdpEndpoint, { }) diff --git a/playwriter/scripts/extension-new-page.ts b/playwriter/scripts/extension-new-page.ts index ccdc568..61e8ba9 100644 --- a/playwriter/scripts/extension-new-page.ts +++ b/playwriter/scripts/extension-new-page.ts @@ -1,7 +1,7 @@ import playwright from 'playwright-core' async function main() { - const cdpEndpoint = `ws://localhost:9988/cdp/${Date.now()}` + const cdpEndpoint = `ws://localhost:19988/cdp/${Date.now()}` const browser = await playwright.chromium.connectOverCDP(cdpEndpoint) const contexts = browser.contexts() diff --git a/playwriter/scripts/extension-server.ts b/playwriter/scripts/extension-server.ts index a18756f..72f5cd7 100644 --- a/playwriter/scripts/extension-server.ts +++ b/playwriter/scripts/extension-server.ts @@ -1,7 +1,7 @@ import { startRelayServer } from '../src/extension/cdp-relay.js' async function main() { - const server = await startRelayServer({ port: 9988 }) + const server = await startRelayServer({ port: 19988 }) console.log('Server running. Press Ctrl+C to stop.') diff --git a/playwriter/src/extension/cdp-relay.ts b/playwriter/src/extension/cdp-relay.ts index a9f322e..82db041 100644 --- a/playwriter/src/extension/cdp-relay.ts +++ b/playwriter/src/extension/cdp-relay.ts @@ -20,7 +20,7 @@ type PlaywrightClient = { ws: WSContext } -export async function startRelayServer({ port = 9988, logger = console }: { port?: number; logger?: { log(...args: any[]): void; error(...args: any[]): void } } = {}) { +export async function startRelayServer({ port = 19988, logger = console }: { port?: number; logger?: { log(...args: any[]): void; error(...args: any[]): void } } = {}) { const connectedTargets = new Map() const playwrightClients = new Map() diff --git a/playwriter/src/mcp.test.ts b/playwriter/src/mcp.test.ts index d6c1a5c..ce6b73c 100644 --- a/playwriter/src/mcp.test.ts +++ b/playwriter/src/mcp.test.ts @@ -31,7 +31,7 @@ describe('MCP Server Tests', () => { let cleanup: (() => Promise) | null = null beforeAll(async () => { - await killProcessOnPort(9988) + await killProcessOnPort(19988) const result = await createMCPClient() client = result.client cleanup = result.cleanup diff --git a/playwriter/src/mcp.ts b/playwriter/src/mcp.ts index 99b0b6f..9b3f84c 100644 --- a/playwriter/src/mcp.ts +++ b/playwriter/src/mcp.ts @@ -22,7 +22,7 @@ const state: ToolState = { browser: null, } -const RELAY_PORT = 9988 +const RELAY_PORT = 19988 async function isPortTaken(port: number): Promise { try { diff --git a/playwriter/src/start-relay-server.ts b/playwriter/src/start-relay-server.ts index 927bb71..a77f420 100644 --- a/playwriter/src/start-relay-server.ts +++ b/playwriter/src/start-relay-server.ts @@ -9,7 +9,7 @@ const logFilePath = path.join(__dirname, '..', 'relay-server.log') fs.writeFileSync(logFilePath, '') const log = (...args: any[]) => { - const message = args.map(arg => + const message = args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg) ).join(' ') fs.appendFileSync(logFilePath, message + '\n') @@ -20,7 +20,7 @@ const logger = { error: log } -export async function startServer({ port = 9988 }: { port?: number } = {}) { +export async function startServer({ port = 19988 }: { port?: number } = {}) { const server = await startRelayServer({ port, logger }) console.log('CDP Relay Server running. Press Ctrl+C to stop.')