From b23365b05fb34a9061276f76288d7a3cc40cfdde Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Thu, 26 Mar 2026 12:08:55 +0100 Subject: [PATCH] windows....sigh --- private/lib/windows/x86_64/rktwebview.dll | Bin 0 -> 99328 bytes private/lib/windows/x86_64/rktwebview_prg.exe | Bin 0 -> 138240 bytes private/lib/windows/x86_64/rktwebview_qt.dll | Bin 125952 -> 0 bytes .../lib/windows/x86_64/rktwebview_qt_test.exe | Bin 12800 -> 0 bytes .../lib/windows/x86_64/rktwebview_test.exe | Bin 0 -> 28672 bytes private/racket-webview-qt.rkt | 16 + rktwebview_qt/CMakeLists.txt | 1 + rktwebview_qt/main.cpp | 16 +- rktwebview_qt/rktwebview.cpp | 124 +++++- rktwebview_qt/rktwebview_qt.cpp | 3 + rktwebview_qt/rktwebview_test.cpp | 30 +- rktwebview_qt/rktwebview_types.h | 3 +- rktwebview_qt/shm.cpp | 397 ++++++++++++++---- rktwebview_qt/shm.h | 8 +- rktwebview_qt/utils.h | 29 ++ 15 files changed, 499 insertions(+), 128 deletions(-) create mode 100644 private/lib/windows/x86_64/rktwebview.dll create mode 100644 private/lib/windows/x86_64/rktwebview_prg.exe delete mode 100644 private/lib/windows/x86_64/rktwebview_qt.dll delete mode 100644 private/lib/windows/x86_64/rktwebview_qt_test.exe create mode 100644 private/lib/windows/x86_64/rktwebview_test.exe create mode 100644 rktwebview_qt/utils.h diff --git a/private/lib/windows/x86_64/rktwebview.dll b/private/lib/windows/x86_64/rktwebview.dll new file mode 100644 index 0000000000000000000000000000000000000000..21a44dbd30137b885260fb1b5869207618f016fa GIT binary patch literal 99328 zcmd>ndwi2s(tk=D8ZPAtYN3d3qgJV+Qmsg}UJ}~C6G@;5g?a%hH|vUk&>JF936;jj ztgNpnyXvd!u8Qxv>bi=B6)hCoVk>FJ+&yHA_ZLY`_7yv>62ce=D%M*N|NU? zXJ*dKcjnAF&v`tzt};cNOr{w89|)LC<@lsOJOA7HKh`LdsbAuTex^5ieQ;iRl>3A8 zCg$C>&^CX;ygL`%agS}r9dqZ-%ePIRWm`}%*LK%jTjsb4wtMEyoOO9zT<;{E^y=(Y z5AVF{*M{K#_3nEbHsSZAje&i;`7^p<2Y>!|-!A?^rfrPk`=@REg@50C*Ni-Bt0T#>oF>!E2YZ?_&Uo*x;5CO$=iB=9 z=y$2f0)dyxqpNOJ8+hii@zSGT>OwX1wY#UmPh6Ovg>jL@3EOoxtA}Pc}M;oCeu~9I0~Ak>G=A?e6e zpK4_PnUtk!pQ_sN4TKG1<;NzIGPy#T zyj9g|mHwGYDL*R9+(~w^Dk{q4)+$uLJ1IrgJ`}G&v8tx1{)tH`;s7jN)g~sXs`rFa zsHz%W6xgh4o74wRko_+hrfRNc)w_9!I&_oj6&BUooLG3aGj*$4otb2#?r^47r0z=H z8i>#DA7!c&(;JCoHId3vQ|rXsZ|V0_NhP>c^=`?XRv9MGv}GZAa-=+}51dJ%UjK;h z{g8N16VJo6Rc!}&7nkU4XEEC@<`|cRu}v%!>qfQ>JZ}xLz0pc+|6Rc5p*rz>A~nPO z=Mev|usmV>dk?0mrCSSPQ!5})TBZ8HaaPq0s^2k0P2W^_gR0et-+>@L)zXTBvq)X& zFdMfSh#x~Os@{qrs(1f>)u%$gLaY>RSF(-<%|?>dQ|`P<{6&*&LH# z3O03PK>jUrY0Yl!2UR=bPJd5X`2f`H@-{0)1KmD{Rjqa;C^#Z+Mck;08DVM~OR~YB zQdDn^qNcxBq^uu6J);S5t|}uNRlg@n3<7O8UD(s5eWLo7T1gV$+yqst7YdU~$1Oxf zn?rifPqM4p{bWX4Y>ugw;w30CBmgxB{^tqRkmdG|QVkrJ zMZvyO2n1Z(e2ZH8v$En5;`4!D!P+uq<#T){S!#7_rdFkDA3L;dV&H#Cm}Yg8u$5LQ zr4O=f8CG@1ZZ&;J(LmKV0kS~XixZT>XjO}@is@l$>ZcCffxe;cf5Zkr*J||(+*%(} zc?r<%f(`GA)nZzFC(LQ!T+D%Y~s{N>HgH``nyEvl{ zxbu&-iHl)D8?spTZDPk)fZfG|O!?3eh){2#-)^Tan-l6X153n@EnD`I&8^*QRo^A0 z<8K*^$E7v8hJw-_HGQ+PJQ_XZ_RUOEJ^rKtF6|>X*vxWkixO1t`>|^J?xHl8ww+9F zXCpk(o!(qD#O04sRP6-11LoGOmP^v0?H?DVrq?Jd-vr-Hz18)h6VdPQY9Gx0@$acy(d^~3 zeSJrH$hT|hx}W0F&iRCi*R^v8U7xy@?ofTH+|OXatwB^bw3tN-%#r3kZAzsmr*0L~ z2T|ve{w%~XjQ;+l1nIA-faai$le_vHaHc(~_r3%uV}Z3W+O1uwz8exb{aDcg)%&Yb z6tDWw0lFJI6l+iTNfQ93O8Reg$bXxq{~jkbid#;?fBmE2QPJ$c3!y7G@Ztn9{v;W2 zKA8cVZVK6iJ?OVb29u={{}gX*My3&IB-4mF?~7|ehN23<8Ag38n$zK+nn+EnG?>%r z>LXUw?$h=0PRQ=ke^pjKM)r)3CY>x|oy6iuP$$=sm3eDmbXA3}Fyj$pPLMWYmQel? z)W~9~k%bB3#uJ@rWPNYC2X+Q1pxrv#IlE4W!P;pY)$elhp?f zR^V>s;y03BV=Cqa#d@$?k@PGdAp|5)OiBIDh0umLXBQj)OUi7ffRUnDuU4shBh-C^L2H$&J;s-CNFB`~_2Hxvz9N(i4CO?iRa70o(1j2eil}$@ zqKJCS0hy5?7s*9h!s*C-#TrY=Nv>iYXI1*U0h+#f=*rO?rK)0qUgWag`;&@^Rr>Ca zi|GxKeSK8_1Pl964^~Z8W>Q)dXEkD4Gvx4_XYzFb^@&NvEJdcC7~~ofgHse?Epq8P z@%Vlwe1Rma^j`>{h1WbRdk@LMA0ZD2Pj1;7sG+w)J2qOeJgyNI$PSb<8+iiq^ifdxxhH#~@zM%aan@7n^1@N-3`)uX z9cgGG&kaC9xT=;ctUx9Rp(c`poro>GN%fzV&8UJ@9VAcJ%S+AVA`3rbqDTnbNQ2-K zOZR~b@0McNzce?-L-Zf#uX-n@KvB>UurV_UDF*AvCMsF$e)D4P*q%}?$&@>fO@mtO zQY~YXmHwkt95bkDY)~ZvOzA4YRe89oSoQs(gv=BgTJcjTYC${VuRn1wgZJA>0r`mP z-YqHN!KANh0tI3Nfou+jfpO2r5X(V$)nPRgml6Kj z8DV8C0;(MSffP9rnUCLml<$jXq=oii_1zvhUW+ucP9*OIh+0YRT{>y4Qt3|!=!VI{ zv@ZA$wf>ZhTiz}6^`2@>KSPhaQXh?f5C6^hlcJ5cc)yKOR$LopGT}@9Fz<;dr4%DE zkQ}6z?p0QxQGBlz2m2#=wn>vAgSf5n51+PN1@p#LV{Dv~rv8k9U_R2r3E&c0dEk9D zdZ!ww!37ref*q>Xcc)l_q>gX!HX{0H zJ;R~~kTv&hChEO65X_3+#6xLd*#R_WW%@ke+VpvJaHtLz9L;j5UZZ*&F;qXESd>P| z!nQrQ*S8SyffB(!Ob}VEScl^qlDWxR@e*CcBRP_}lE(T5MaqW*JVjmuHh&zZVv5d1)edBOM$4>fCwO)-`7*z)kp~KJXK{gnrdN)}b zpE%rdiZ5x2AKp!QVk}6j{xPa}Pku=jZ}S)PXW$PfAS7%Ov958fPAKGmDKzYWJEXs# zKV8+vBch_{aVgj#!`15@?J993DbZJthN}@yAR5Msz6@(wG^aE8my($=z_`(&T&4`p zid2C{S&S*E6*5C2SF*`^Nu~)3C4Er7-7?6>z{^451>C}Ozol%u?hxS?WgmxK=~YET zRPCe-g994Crn@l|;BNhxQn_MWN#p#+C#eIB;|XQuJKQJRRPR;{{I?e+(#Qa@VduB% z(9Q1j!$titnOxlv-n1=B)TV9*u(m+%l>cn^`ANGUtR}M5*Y|U2vd4CDz z+4BVeu-`p806K4kEFy6{8KSvn9*&|Qu;O}De@lwTo0Ju)_=aM~cJcDN2w~cd9B!Nq z6mI_yc!Y54IaFR$NRimtP~|*;i?bW}hQH$mR6;hGS)nze&t{W}M9MzK7A2EsPlF+( z4r?!QKD*s=)a9sJ*NJmJ(UWIq01OSkMlw{OR67H6@0ycR<%}kF0?f`iIy+PcBo*Jk zDR^%KgeW*v?QEDkZ|m2tbf{4PborB2NGnA3plfkq9WiBM8; z8XCBiDV`0AdY6QxxNFW8At|Wm&WA};M+7BbUJ<+}K=-h=SaMxkko*u2Rdqgf$-Bwt z3RDg1!~)bPSA}%>+xq@Wrf37jwvt~NCVBG4aLLPH1M;2@B|nPn3Vg~Q`fZXwbdn@5 z{xEWqr!mEgK(VdlsbP{|{&u+Je}D~iA^FMU5tDq?36gy2uE;d6aiD`-3^%1 za%4S}T|cg0z{FUj%!cpVOm4p?;3!9?(gH_w;P0zYjM;D|13;~){a57Jd*(O^?BB`N zhPZnHP7I7y&IT~58`C%mAl-DM>$!!YdJ76#klmR`4GpVuCYl`ojB@*(i2%H6Rg3%Y zU8Eydn)vBelS!L`L)jyYsFT<|)LDlye4Y5)4i?m01`I;`PHvx3cHPlHK&xyrmm|4E z`<@#qBmE<|cKe@70`8zg?6~~7KPdY(j!rf8G@fHqw?eQ#BIAcyqzxLVthN*H$A@y(tC?)B~;1_(n}7} zOJKpai)T-ro_3tM$`j=rOvkBW7zSxPyuOIPm`784{&9%bv0~%bLDtLkriQoI6eLeW zX~X5uGUgLBOAi8k8%;#DGbz=8azHTA)IW9lH~G(U^6w1M<bSFg(u29PdOU%l(6qZ7_$Wui{hyKi)4Oa z9VRF)bkod`vAo(BRSYD-ABxfznw(PW`DaGke6IbfXB*0||4114Y%Qhe_Z(8IoyX9P zrZBA6i5s#06p3du@eB~>yx)^Z0Gb66X-JQu8s_%4Jc|z+1URNRZl?mO$c4?ca$oe! zLDcNrNj9;d34z@opW%SV@PRu%C)GS~5Oc36CG?>BnN8JpauGu$eM7Z2D-OxB6H3iC zu8h&?ERp>k6B{*B63Y^25i$IczuKspPfT)=Z;vE+CbDQMV#!u`n%XYjArCRO0!H-` zoSkmV6>m$fKhwF+6@NbvCM4u54)VMT^AE%$7)604STPg5zGq&0=p^hS&p^U>|9nb! z+upxb%DUMuWwncBQ9#uW zd$8J(jLFO(z4q!IXKzJIt?M0jwX1r^U>X7KtHHgYdIuHvFu0uBwxqEcJ*wBIAu9?3 z7;&F!P2fCgsDK)(&akpt^x8lb1{(UO>)UXQ^!b7XvRHiuYPOm7sc#J;=0R$@#v`v_l7LBZovH?veJI9&6M(dfX3^`!_4wuTPmV%8 z<0_z#T=)WG$k0=cdez$mWIoBrTu+iLsRA+&Z#UtX`#m&Bi2n^#+0w=y{F3y2!>IU? zOH;{tl(x<1P%Voejwx6^AnwMrr@=xvUudm=Rr{eu|4!u{ls-_n*-svXOq=A^qTpvx9XW1%~R597Npf!hU85BG85*Tg0ef(kso-DU(WAW zzehHYx@^=!vs*jbl&%J_TO??d};z-PaUa-O9*9%r!8Rs&;kDvL$!=QDx;s+)Qaw(NH($hq9<3mP08AyDjol znh$>lh3}D7nOE7-CW?klE*E?{xOfR}F4r#^7BAiYDTSbVszWmCquQZ`3GCR|E z1$BN8`5p5Bj`cJ@f;oPNwo~lc8$exBkKfu{pzSBr$2{5?pnV|jsV8RjF3?6 zk$~wqT#DWc4mHrsRcaG*7OayX>d3#Gbxjd0YR=}5?mHe zsw&AiFk4xMe}hJjm3nBuijJ{y0+;g5;AZ1q79=YWqqVLFgn*xh@P^P3%7xX zz-eT<1oMFZz`ji4AgbLhtBLyVCjX_G6PP=iZapDO_RREg!KbNM5q5tP@|TH8$!Ja_ zVvx?$mE4f_coaG?yC%DspP*z-yBczNhT6LGJcsCJ~hP3K^l4j@! z>d^PFd`Ve;5nZmmF9)`qPGSBhlum`_f5Or!>&NH|UlAO!nbIi~4uE2EWb4#(sQ}8= z#v$!F?Icdh%14MdbU9RR-$;VoNGpGuW>TiK5fp+4u(k!^z{6wb(U@(NEq*Beglib3 z!=~!mW@wk_jqH6J*X#I9#*{^?_KOI*I2tuF6zT<+1% zzVC(Re#x45L!FhO}TOkj#b2zk6VzVQwJjzhKAn0jR~c?3Oyx+Gbii z_Q1jYfNkaC`8CSL#pRjG#rCyGR({6Q2V7PvT}y_f9ZwCwYEpoSGf|cc#9xhK0_hH@ zl(?Q?KM?;RAF4sbzXg|w75z=7#)sg%=)^$$>;s7V%>iY_Z8);ls+3N^Cp%2(8r&^c zeEHXMx7Ui^A5xnYG-vGh(|K{xhvazv)${|$(!i8>^k;U))vwVp8i49W!xkj z2&r>>m-CE zQLmH0m@G^ru)|7k+7V=jeu7rLcrZk(S*K-@w3>BVmR7Vv>?BKenngy4M1oEtS&~T5 zNhG%-0d}~nZx69UKfz9dICeNFTAEHvm9)}yT52m=A$I;mUgY~nrOMe%R1X`e)}KCACsR$;sfsFRJyG3Zq*{LZR1aZrUnf3$ zQ)-~5%2`fSUo%o&bNW>O#8hczKFzDIt#Ym*s;ii4aFuQG>60DFWK(pqWmtPw47#gV z1>s*euWnEl80XiCPu^gLLr^TkQ!~g*2lQLWpOBK=jWTp7JkfcvvW~-3Tm$Sh5I+dy zu;B7j{6K)D1(y==@j(llJ%Wf_WFP_nb25dNrx<9msz8LM8eZ;&CjGPO-P%2eT^J&| zmC>_ws%vzrYgPZ!sDINy((Nx;Q$B#yl76xGvvdwr+?HnoBAl8a(M|AT=*CU7N_ z;u2t~7;)(Sq`cI9|1_S(a{vwe902lk8tUQ^Fj&-q)+vU| zUl`50RQ*_EucrT4h-&0MX-%J!3O{X6g}t}Zh>R&0tG4B_903!HktSBn9z;3IKN^FPv{~=n)`7i^x%sn;RqsZE1)lUP zc59{74d|g}F_p-1B&?_NG7<_p8)mYYCqxR~tQ2B$ExVcTeC$Ag7t1i9(p-1}*h&+=5QPMtLbCM21U*$s4)5I%g*lQ!f*2j5P_9#`krc{x3IGBl z52}AP*$>R@a8NAz4YAmk2n&9~%pQwXT27a+Wd0iZ%I3!hrTNjpaPly(9U=28hm7SS zzCoHF$7q~S37t>C`2=wkGZ}=9$&|(5d{*du8tdp|{k%%K6VA^MozKDf9Py@pK94ds zoPRBJehtpA5v%p{Yblz${cjTg5Pt^=1n7{z{r&`)j93pC#9$5anJhU=)i$a)toq+f zqYv-KEPRkD@NaQJB@8fV@O;mdvJF&KRDId2W}{$HOeMEK;KnFS@Z}e)4=~CpD?i4l z3ug%xY1&`=1ofQ2X55Bhss21?87`p;-wd8@Ef%@RgXt*;;KPztv0xitiG+SXs_|kY zQ>Y12xET}x0jprw^1c(XV4S?Y8En%tqu1gJ=xY`96->KD5bt2-1!nUm*L{AZ&mPueo#&^45V1(%TtIZd?#vA^q@GDmLqPVQxvNU`+Kzaa7R7v zs23yU;a`+O40N}krDoX@eTWP7mR<|CM69fl7tn`@p$otl*_62Rb2!_&%BECZBcoA3 zfRfxOSo!16{sdPX#Xb7TOXNx9Y50OVrRHA?8nnLP@ZTv?K9xij5!7_?H0nY-7HO%x zNDKcg-tSbBGj;@P=U8?yrPA#$C8O7Npf+Or7%iQIr>+togQHbqJO8_t{#7?M*^u`6 z_oG(CkNkS^ZIzq6gzx}fJA+Sn$hMP^_r1$914+GO}+C1K7Jpqk)YMo zH%A9oQ>*v}8)#5{ay6Wo^eC^Si<^qRQvKP7fShz*>F<=Qs;itwXl3;wN}mHF2UiEz zQ^Vaw`D1_rT2dX$V+>RRJ%_j!6dDmCZ#mVC3HI)wS!VD*XVRS+q z7I|RN)*<35N^&(!SEe5JXu&AdiUp#FY`i=Z`h0?=+JHd@Xw-^wAAM$zW^H1%K7>oDWhj+qaA+|Z` zx}bLs^U#7na?lhTpW1VS?w|!oOXcGZcXNX3d6yh?KM067QMM$_Z$w~%0dJQ!^)6Jt zogaIsa_%Gt-A;;c5O3jXqk|5F<+Fo+6H?&zZY%KG4@iN@&jWPLe;|+oJH*<}%$nz2 zutscw8BDX>iwnw}A2M52&W}vu9I!@C2=CpAF%!%@5~B&@Lg&h$B(;3{ z9Sdhon|arQD(7yPQ&3ZWKeL0UYsARNu|sPC>x5Zn=VHmuAySO~csU^e%eiPMGkKdjeJqyO3gUhuC;jAjo^qR$|ZA&Ha1w zeZ-@X*myqXkQ6(pv05JP>PSvtc_`en+ZB6+$a{{(jfC-CjIudoz~n#501(euQ7hi^8ki%QPNgeV@z`Hv7m_#TZ=(RPoy`gbD3nxxTc2iPgD*8W3J z?9T^e-+Q$V*{H6m+PPO=Lokg;PbVWiEm=Gs!-a(w7v`vyi;>AGD`-=#VEzj(In#*$ z7_K0iu>?UsbD2C7h(CwF#C?YRc?0O-a#xDjUJ@b^6C&|{MB>dB65m!c@j(0@d_iXn z_W^C}R|eie`zCrkotvVXU>ZFiOcs!zqz2+&m-itf&m)R6S}3jwQe4Sj;#4q2nQ>aC zvTmDPbW4wLT(K08k0%#&QKsYKOwRDrKo8;yYYRzdkmObP@&KkT2g9RjOp;|+)&-PI zEQNweUP<%*Y2n5&s2yWaR{jjx#2fz$L04cFb0AV?^vJU#&?DMnI}O?}k-c3gOMsp> zTuMJ4#MQWHvAhVIKCZ4@TnxzAfVd33#LYYqz~T6>MNp# zr>5njy%>Sp=rjh?vI4p8J-7k?VZQr;gRA&fb499duq%>Ea0D5~wt+;`Ttt>kLx6HL zBQp%%Sq#I&6iP9k#ns~G2c>V{3OJ)qw=-zt3SJ>5vy9B7kw`Nz$b?bRGVHOq$Czlm z0^umppoh+>gH;l!`;VG$-$LHL@hKMK_2FcdAV&c7Jm83!%ndSW1Xu7k8!EGNeobs1 z(0ChCAQ&;q&V&%h_-2LYH|OMcM) z0C8^-%Yyu1cLef-rz?mJ4J9fv(s{&2*y!%*jr3q3xfCu0i*j&R1hx%>JFJ&qi~(NT z!5t76Qe8}rq`B;k`wJ0|=-Dt@WsKq8)|O(-a4h#yX{#A0hI_|DBfcBXphnH#pa#i! z+!Kf-@%R_?Em&cRn~5y6J3q?-ow>K1HKRj9kCIg`YtK;YE&sS^HY_Q9qQ#= zX06qTZy7EK8}VHN*7Oly!^?&t3YCdk<+Z1g2)^+S@$}r|y1nUKNl)ToaYrM*CpjOj zp%GtJ8*h?^CxD90DtM({jW+a159^8y{Ge=-iG{5T@1vNPESv z9GJk|Zt<_bM@&~`8%bA%tEH~~%q#_Ke55NLRPlH$IH)QFAI4$mC%Q3CmG^EBjmNf! z4?|IVNPpYF_oXU5F>=Qe|nq5r5)(tYWH8(g17U5Q3hA)7;me+5^o2Xh(@g# z0!IgPaflQBFYQ)?2$76RdU|AwG9=nX$ z7%bT^2LKd7YnRou%P{NTb{rN5La5rmHk&?jp%t+)d0<=XiP%_%Pz>gSs*H zllOLpr%me&e4i@zj1Xlg97YIFU2joej9`N1OW}yY2@V^8_LT6nXsN_gj7Gs!t=K)E znLAxPeS>QVGJkyxz!S;(*35MzR)1ydPk5wW$YL7al7O#E+ok*fKARcTP{Ed1%`0OBp>8)h4ih{IA6CXlqqWvO>)(taNYLcud>*h}Y; z<2C5hLx(-8m6f06i6sJsLxJ-`s}k2Q#y z16MpI59qsOfu#aekE2cE_`-0oyoIwb?0LxYkSvBxvgo!$qUxUvl9F!%$yR)~Th19F zW;{fi4ef)ac>>)QH|cc}_Y4qZor6{INxCOq^{ucZuV=Rs@4f%$=&ksp5wR`L=-s`nv!S zv|9-^aEL8?TwBXN4ZwNs6%uk4S|IBAppFQ>B#|R{qU_dcI3>m}1PV6=i3}!ZZNjA*i0Tu`a(3;$yN({!hK759XkQ+_%9#!A5g5FN5r(<%4 zDmXU!57+xqVoIY@k!IdCSPv2_l5BLud;KH7i-G}{zKVY-BBbDGAb#=RDR3hU#QzCC zOl4)8n0yQ3dJYAQ3rn#b#a>#IF#sx3`r}69Ldzy>NQBsFz8aJ%K-;S9c6oXU213sw* zBpv3D=sKU8ESjcKoG<8uV-+}t22JZh)+FxJsh$U_FW?O51nm`rp_`LM|LI{AmrIH% z^6u*lcjpD~=8S=cQn>rWJHqbHly|4eyMIMNfFw#p+m{6IjwYG)yI1qw^qY!v!@cRz(gZa4Hm>=wz8^QeG$NwXDJ+K@W8{BhW z&kv3Rt;lECAZ0YfE}HNlJwMokOwbr%t^r#Tg7q?g+x*~#ml%RiH$TV#cM-}DVp!ZC z9_S##@K%{5;vsS3_u=B*$^(o}^MmTO-HI?X!A*n$=!Gv)Z=Ttac!vC7a4Yc^!^pY_ zphDIaPB;B2Es2}qxd z57n5f^`Yff8d_FE63=ci99J7d$Lc&ibjY#Sx`>B4~7r+Axt)@QR z!Qa6X4=k&}4CbQ`!F9`=waiwPv(6;`%;_H2PscsVxETqal9;D6z!O4oHQLmfGVkT@ zp0|jbx6J>V?OT zbq>MOB|3w;*1+9%nx*Q4!&FX{9ZKs-6B46jD7nYF;n#PV};$Kenz-)rNP)V&oaCgLBpos!4$sx_LajNjpD+#IUSw@IAjAGCYg)X znG1u%Y7CdE<%;gz;z2|Kg2O>N9DaQpb!m2DXaFA@Zv5>I;8jt%h;M5k#r*XJGLKkR zfsBMSTHWLTmv6X3s%I4Q)m1&sj;oEJ_blu*V)eAjXGl^1#A=Dw`SMmk50utn zzWfqmu`wm-1-81#mka-wap!dNP?gvms z^rCSnd1P3C2+Nme!3QZo^w$H#d)Xwm&fKZz%g=H3QRd6bfuxblmv4TOgtVgt3J^)4 zjsS64->&oJUN^HW5z3cq|4eMGM^zbYn4bm;l4dDD@OJN__KD8&<)>Leo#e|c>m_Ns zu9k=DD!60J_gF%a!>JwSb(8mD+XaM=3+UZ`RBoAL4(80$@r{@ZO~(XomCB1{u0v+g zLAfOgNrEwa+<|dN#KOmlKam<2pn7cxACy=OzZFPJT*GFGF{CjK#XRqDNX!HOMvk`M z4vuJ9qznv{fHZVF^8c`gINCp-RW$q~AVw=FBu*CToP2dlI44eUl4)Rt1{B?A{fGF(AWi!cMG*ExVRS))PCS`5_cXGG|$9q>w;B|93b5(q4ulr zNJ8yC-0`(S$>P2^y);P`2f3mrQM(TC7D?28YBdS@5LzJAo(t+g?IOH;5bJOgW%sr} z3o^mYvP1~A?58H z!TN&i3B309FlrsvC=$WEzDE$Vg?xvYsK#axI5FR>L-uDO$o`NZ+xJEio@51wco@a) z`&$w)A6p#0oMhrp`M8kV_jb}@bh{XeNDV#GR_nDCJc?k2bD8 z>_xMs0i0Vyn)ekv>rhtX4GHI74@<-ez-<|xC7ipPWZVkbG=`X+A0Wt{Pgav;+7YMd6dyVfiN+ks_Dm+l?tSh`{~fWjDv_hymt|gC{S%dzIzv!Hr*K7 zyQG13k!c9ulj!~Bv`YiMj{(=xYsZ)h<~gwDB3HbFk~jt8HvpONnYEhvR-g#0j(WG; z=X{N-2iM~uY6~OrK}CeM!18st(dT?aoIMfOgB+%lRPi*nlK`4kghmW&yB$xSdz37H z70SzG`7z8Nn$XN!N!!%7L0v(xEMjskPJlaz3D&Vb0}pdd#5~gkU|i1@X#W%)o>|5Z zwd69JDlO)a?_}!E1MVmONPG&e5G;8Xn?<3+3(9E6b5)x{hJuYTe%AZ6L0LH*Q3m@Y zad*;NtlM^H2F=m&9?R85R@(W;+Z@_e3Hx5)#c;<;s7o^pT}qUwOR>$SXeyB^`zPyZ zVp1L%E9;9byL|qvd#25pwICnrnGa`ywX?d4MHVM|dQX11jC-=AMMZht?#kV(NJa1E zk)fD3V4ry)bs6>QD}WU?oFI!~8Fm@0tW1_*)`)0?D#B_Rq-({Dn}`~o7-9zbnV(jD z*lysxN!-9}WIs#o{|@a#4Jw6lTF^taCW^sj-4^xWBP8mlcgik!=P_b3t{TV#yslv> zX<1Z%XHAu}CRm5TG$W?1pBqKjX78s*@|Y1CHq?YO(ymAa;%?cTc^sM}y5zao%?ob; zxQzC6r(K`*jrBpG5C%o>^1*gi0uSalCl+0WJsHFh(BMr)R2O#3c3}q*{gxCDHp}OG zTtl}6@9E%i&hP&K>1jLpJ+rA}X$P2-8X=zqU9Hls=`gHGSXOa{u-c6W=?IP?vY>*{ zo8SfoA&LOgZsUjYzY;r9#K2lQ`nTn;-TKhVUvPJ5KJ`!7`U7@1GJu1W;P(I+$f9_2 z>jeLI<7B^G^gp<^W!y)3bUW*=XHil7M?eg*LniwqU{Tf6 z`lb$};Bx7=Y(cmGg6xxPNSThW8(&I3P28CX?wn!^0{i$HR;OvifuC zRh4~QRgOr8_sqkj13w6|=XA0NYqcj_%%kXMJ zcEvLkjn*NVGv?_7x)#s-P`AXhMNYf}50QA=QNC+eJVViF_n2_;M!;yh=)J%Bx+R{2 zi-{5Gy&f#y;X8;`^H(Q;VfrNN9)O?$Ji9@7c3C*$Uba6j*HleW}B>`TF6VBX?40@cff<}ji)zo9wGjP zVsQw9spQlB+DHC_B<^$&Y!_?{>v4WRI$XT>UBpDE>v2ZFyh41QdZ_pa<%I}^iq)kg zo)-k$70(bVG^CNn-fKc{b|GHQif)N_^!A8}w{8WA_csu1S3E_~UswZ+khIZ!{;xLHOBS&z4;p~sd{LGa<;7k|u3(t&{;p0VsnZYbN2p@mJ z)yD7<1=omJ_(*zydh?81!omm7FPs1r1qUGd{6djl3RhZjG%quP^9zrb5Jx2_1JL*- zA6&G;3YuTY(>W=1gzM%jq*jreUx;N^j!u@nHHa0``TW9BdpK-mgC7#(GXNj;G!Pon zP)E0!U)Zpe;Y-HW;Ruqg=0)1A3EU_qOYVj*rWS(e_uJ+dtjnkeew`#)KOcl!^+22X zgNgxlUjrbz0C21f-;b+}0B(o37yz7{wUw_A zL#0qJ-)-um6gOirX>>e_--I*SV94OC<#IRG1FU5#9idaPd@5<~kjLyjk2WG`tzygtYS8dhtvaFRCN) z3@LiAR^r{oR@JF^pA>aVyoD%cMo7G?imCU`XM*N|jV)l`2LNes<&IPI>F{0xdy5YC zo3Ai1cd8btif6dAC&7N%{gDOxaYZEL^=N^>{yb0z*k2;L2K%0uvn&w;`JKn; z!8#8mmU;R2%weRja(-bFcYrM&?FY;-pyzMnrzxNK*@J?$gh84W$6L?|1_ScJ=^)A< z7#Bk>FQubL_jXG>Ki3~4QnMesfW*6w37W6?q6OtI z1Tq>Nxnq>SAHGW{AFHGMe})=#f2tO#iuGJ{lqmnF!pNfhUH6iZlhFd9d^)HDgMtm>E(1`I}J|99J+3NX_)5znWoJVT(jb^|Jy+2_HwLC(kOk-;V??Y$@_Honj zaE18*d>FRO+d}#QS0ow0ikJt>m?YkU3(A~*nE5JaUz3=ef~#l=PxcV8cM3acBv{`+ zmssD1f;82?8mL1(%+*_x!yyczo?~I&7K<`YtX%XlQ1k<+khdl1-ZocS=#8QE5kpR4 zeS|8;Fbmm<=u-1gv|Z&K!fPZ(FrDAlKPT@YAsd}i&!X?$q&{gz==agIm_eX)P6LcT`!I~90mfVB?tlN?-a zwBK@=L&Wlvy>m!ETQg}L!!RHdu|ur=$lpWRiCn&L1`d`vzaY!R@`W!=V&i4F1C|Nn zUT`ZLrmTZepLKt1JeqkL4xS7-Qvh5I_k?j39GQY2{aN+Pz>l$@evy8noT)bCc8B#nNuTv&RSzOp&HiM;j14Ay^Y7Vd6 z^5h6nK9a?YL~kzoJ&AWG2(~MpA!nI~U~TNZ?QC70<}BCAI>_mYw+Hp-2&H6yzKg^w zV}j--pE8P)t;XF8cr`e87>b6iGpK<-6N;XtqiFI42IfxHB2{6QGI1I5E1+H^%aCv8 zk&u72OW0Zo>d0AE?IB@1UuQ5Uk!6Wc&T=`kagJoeY$7%Qt8jn);gri~b(XW3prEdD zmUi-$3hoy3u8+~05$_M+m4^tN57py1;r)vtynnhi-p@u{B$J^1Kny0)0p91~Y9rp) zToOUNZ<Th$_ZlHykW;!6X-M2wKzbTEXCnHO(7;&zFxl^@B zRh%VdV!;3D&d37(mgywq>nIfyZaog_0Q_e@>>BVF4`Nv&1o+o88$%@5%FZ*UY+L2I?aq01YG0s1?3kM13JK67P>G@J$4+75&me2vtm*8q6 z&hJl(AkIhMK^=GmHM`c3+KZVBBE1f&hW(xz&kJ`-7uf0oQrDpyLf&<%20TJc;EG~I zo?kyJm&ENs;?mO;oh(J}-AcUQbGFqf=Iox@ElADhief|{bvOzMb>adLY*#!(#29J| z?>!Ah)19E zl0$??Zzmy3&;mt_nV^n{anA=`M-11Q%v6LTMjvM5cq+4D{tU1X9x?jd(pkj#j1|=B z`m%QR4}NPaS_#FAt^eS7v7inIyNDNK&ym`i#B6r;zh z^zd@%-IH?v{xtDpACn1N@~7ZtY_P99hDVlzF9_`Z9{aCMBxOB?Dl}d{PrLZ%hBn&& zD>R6W_VX&~74!P$`;P>VwXFHTyFQcol>&kIC=jD3Z}G3)f`9RW-EQcE9xEkc$#}mz zuE&eqQ|MvU6!E)kxF#PDQdB#5-}|Tf``(X>Pw~jRTkai@tX5YB@JA1I+t37D1XAqA z``=aXR=mgHn+YZpBDM-$ZAqCnm0ko-oq+Y^b7)Z__N$o;er$M)yhB-ceEob-aM8=9 zzZIUL)L-;!1MFHn5byEa?#4sC+Q%rB2~?zTE*ek$S4UH$sx}AjXrz{Jr`IFoC8T2_zwyj_5Lz%-0{T?#i0X?X9#rjpkG7vUcyA<*`_(H0@h{y> zg1v_ws9)u4`5~c?ekD+=4aBEHMpgSj^^Hmk#9zceu&=_XltBC)xG%NB?VGLQx7F=0 z%))1a3$Hyyci^iH|0m;ri*J-2j7%ruzMhV<8>&X-McG#b^0SHWWV}!!byucuW|B>< z-bC7Vl*d5oK>S~_m`n~-RFI^<$-<8|Jz5=j9V&SR<01`@&x0oHy)dik1{_JiSzb0it@(=tgz#g!#XK}!qdPf@k8IbaX3^>h<|8zj-jam<&6 z2wsc#w&Ev~)#?NB-;Jl;yeq+96EK;2^GOgUI#sdY=W$$1T)L^18%_C393?lH@&~!K zv1#nWsaqZ8)*&SPW4N-ZzgruX24Q-btT^P8?dDRunSuCg>8G|dE!6hC+;%P6enz(K z)~dxhvUyAJ`ms5Icq{I7fFB33U? AdG0NRrNdiqQ??c|M(bu$FWJ=i}`0)_Xyxm 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 literal 0 HcmV?d00001 diff --git a/private/lib/windows/x86_64/rktwebview_qt.dll b/private/lib/windows/x86_64/rktwebview_qt.dll deleted file mode 100644 index 8676948bf24ab1f3acb0a03d4330db883a3a9426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125952 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 diff --git a/private/lib/windows/x86_64/rktwebview_qt_test.exe b/private/lib/windows/x86_64/rktwebview_qt_test.exe deleted file mode 100644 index 03370981ab4908063195d5c81bab5817f23964f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12800 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 my-DWJr7?Wb^jz+mCNQw;hzr*Z;*e@ZSNok7WP= literal 0 HcmV?d00001 diff --git a/private/racket-webview-qt.rkt b/private/racket-webview-qt.rkt index ad997fb..be8fbc2 100644 --- a/private/racket-webview-qt.rkt +++ b/private/racket-webview-qt.rkt @@ -142,7 +142,12 @@ (putenv "QTWEBENGINE_LOCALES_PATH" (path->string (build-path os-lib-dir "translations" "qtwebengine_locales"))) (putenv "RKT_WEBVIEW_PRG" + (let ((p (path->string (build-path os-lib-dir rktwebview-prg))) + ) + (displayln p) + p + )) (when (eq? os 'linux) (putenv "QT_QPA_PLATFORM" "xcb") (putenv "LD_LIBRARY_PATH" @@ -222,8 +227,19 @@ eval_js_failed = 3 no_devtools_on_platform = 4 no_delegate_for_context = 5 + webview_missing_dependency = 6 + webview_canceled = 7 + webview_invalid_state = 8 + webview_invalid_argument = 9 + webview_unspecified = 10 + webview_dispatch_failed = 11 move_failed = 12 resize_failed = 13 + choose_dir_failed = 14 + open_file_failed = 15 + save_file_failed = 16 + failed = 17 + invalid_handle = 18 ) ) ) diff --git a/rktwebview_qt/CMakeLists.txt b/rktwebview_qt/CMakeLists.txt index 26adecf..48bc0b1 100644 --- a/rktwebview_qt/CMakeLists.txt +++ b/rktwebview_qt/CMakeLists.txt @@ -21,6 +21,7 @@ add_library(rktwebview SHARED rkt_protocol.h rktwebview_types.h json.cpp json.h + utils.h ) add_executable(rktwebview_prg diff --git a/rktwebview_qt/main.cpp b/rktwebview_qt/main.cpp index 1b96cc4..ebf7a7c 100644 --- a/rktwebview_qt/main.cpp +++ b/rktwebview_qt/main.cpp @@ -62,8 +62,10 @@ int main(int argc, char *argv[]) { const char *me = argv[0]; + fprintf(stderr, "%s runs\n", argv[0]);fflush(stderr); + if (argc < 6) { - fprintf(stderr, "%s: wrong number of arguments\n", me); + fprintf(stderr, "%s: wrong number of arguments\n", me);fflush(stderr); exit(1); } @@ -78,11 +80,11 @@ int main(int argc, char *argv[]) int res_slot = atoi(res_slot_str); int evt_slot = atoi(evt_slot_str); - fprintf(stderr, "%s %s %s %s %s %s\n", me, shm_name, shm_size_str, cmd_slot_str, res_slot_str, evt_slot_str); - fprintf(stderr, "%s %s %ld %d %d %d\n", me, shm_name, shm_size, cmd_slot, res_slot, evt_slot); + fprintf(stderr, "%s %s %s %s %s %s\n", me, shm_name, shm_size_str, cmd_slot_str, res_slot_str, evt_slot_str);fflush(stderr); + fprintf(stderr, "%s %s %ld %d %d %d\n", me, shm_name, shm_size, cmd_slot, res_slot, evt_slot);fflush(stderr); if (!(shm_size > 0 && cmd_slot > 0 && res_slot > 0 && evt_slot > 0)) { - fprintf(stderr, "%s: Invalid shm size or slots\n", me); + fprintf(stderr, "%s: Invalid shm size or slots\n", me);fflush(stderr); exit(2); } @@ -98,10 +100,10 @@ int main(int argc, char *argv[]) handler->webview_handler->initApp(); handler->webview_handler->execApp(); - fprintf(stderr, "waiting for thread to end\n"); + fprintf(stderr, "waiting for thread to end\n");fflush(stderr); handler->wait(); - fprintf(stderr, "cleaning up shm\n"); + fprintf(stderr, "cleaning up shm\n");fflush(stderr); delete handler->webview_handler; delete handler->command_queue; @@ -318,7 +320,7 @@ void Handler::run() } break; default: { - fprintf(stderr, "Unknown command: %d\n", cmd); + fprintf(stderr, "Unknown command: %d\n", cmd);fflush(stderr); } } } diff --git a/rktwebview_qt/rktwebview.cpp b/rktwebview_qt/rktwebview.cpp index 3e6d10a..3bba070 100644 --- a/rktwebview_qt/rktwebview.cpp +++ b/rktwebview_qt/rktwebview.cpp @@ -2,13 +2,19 @@ #include #include #include +#ifdef _WIN32 +#include +#include +#else #include +#include +#endif #include #include "rktwebview.h" #include "rkt_protocol.h" -#include #include "shmqueue.h" #include "json.h" +#include "utils.h" #define SHM_SIZE (10 * 1024 * 1024) // 10MB #define COMMAND_SLOT 1 @@ -28,14 +34,26 @@ typedef struct { ShmQueue *command_queue; ShmQueue *command_result_queue; ShmQueue *event_queue; +#ifdef _WIN32 + HANDLE rkt_webview_prg_pid; +#else pid_t rkt_webview_prg_pid; +#endif + bool rkt_webview_prg_started; + bool valid; } Handle_t; Handle_t *handler = nullptr; static bool fileExists(const char *filename) { +#ifdef _WIN32 + DWORD dwAttrib = GetFileAttributes(filename); + return (dwAttrib != INVALID_FILE_ATTRIBUTES && + !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY)); +#else return access(filename, X_OK) != -1; +#endif } uint64_t current_ms() { @@ -45,29 +63,62 @@ uint64_t current_ms() { bool runRktWebview(Handle_t *handler) { - // run rktwebview_prg using the environment variable RKT_WEBVIEW_PRG -#ifdef _WIN32 -#else char *rkt_webview_prg_path = getenv("RKT_WEBVIEW_PRG"); if (rkt_webview_prg_path == nullptr) { - fprintf(stderr, "RKT_WEBVIEW_PRG environment variable not set, cannot start webview program\n"); + fprintf(stderr, "RKT_WEBVIEW_PRG environment variable not set, cannot start webview program\n");fflush(stderr); return false; } if (!fileExists(rkt_webview_prg_path)) { - fprintf(stderr, "%s does not exist or is not executable\n", rkt_webview_prg_path); + fprintf(stderr, "%s does not exist or is not executable\n", rkt_webview_prg_path);fflush(stderr); return false; } + std::string path = basedir(rkt_webview_prg_path); + char shm_size_str[30]; char command_slot[10]; char command_result_slot[10]; char event_slot[10]; - sprintf(shm_size_str, "%ld", handler->shm_size); + sprintf(shm_size_str, "%d", static_cast(handler->shm_size)); sprintf(command_slot, "%d", COMMAND_SLOT); sprintf(command_result_slot, "%d", COMMAND_RESULT_SLOT); sprintf(event_slot, "%d", EVENT_SLOT); + // run rktwebview_prg using the environment variable RKT_WEBVIEW_PRG +#ifdef _WIN32 + + //STARTUPINFO si; + //PROCESS_INFORMATION pi; + //ZeroMemory( &si, sizeof(si) ); + //si.cb = sizeof(si); + //ZeroMemory( &pi, sizeof(pi) ); + + std::string cmdargs = std::string("") + handler->name + " " + shm_size_str + " " + command_slot + " " + command_result_slot + " " + event_slot; + std::string exe = std::string(rkt_webview_prg_path); + + const char *td = getenv("TEMP"); + if (td == nullptr) { td = "C:\\"; } + std::string tmpdir = td; + std::string logfile = tmpdir + "\\" + "rktwebview.log"; //handler->name + ".log"; + std::string errfile = tmpdir + "\\" + "rktwebview.err"; + std::string redirect = " ^>" + logfile + " 2^>" + errfile; + std::string cmdline = "start /b \"\" cmd /c \"" + exe + " " + cmdargs + " " + /*redirect*/ + "\"" + redirect; + + char *cmdline_str = const_cast(cmdline.c_str()); + + auto cwd = std::filesystem::current_path(); + std::filesystem::current_path(path); + int r = system(cmdline_str); + std::filesystem::current_path(cwd); + + //CreateProcessA(NULL, cmdline_str, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, path.c_str(), &si, &pi); + handler->rkt_webview_prg_pid = 0; + if (r != 0) { + fprintf(stderr, "Cannot create process '%s' (error = %ld)\n", cmdline_str, GetLastError());fflush(stderr); + } + return (r == 0); +#else char *argv[] = { rkt_webview_prg_path, const_cast(handler->name.c_str()), shm_size_str, command_slot, command_result_slot, event_slot, nullptr }; int r = posix_spawn(&handler->rkt_webview_prg_pid, rkt_webview_prg_path, nullptr, nullptr, argv, environ); @@ -108,18 +159,21 @@ void rkt_webview_cleanup() handler = nullptr; } */ - fprintf(stderr, "Sending quit message\n"); - handler->command_queue->enqueue(CMD_QUIT); - fprintf(stderr, "Message sent\n"); - bool stopped = false; - while(!stopped) { - int cmd; - std::string s; - fprintf(stderr, "Getting result of quit message\n"); - handler->command_result_queue->dequeue(cmd, s, true); - fprintf(stderr, "got %d\n", cmd); - if (cmd == RESULT_QUIT) { - stopped = true; + + if (handler->valid) { + fprintf(stderr, "Sending quit message\n");fflush(stderr); + handler->command_queue->enqueue(CMD_QUIT); + fprintf(stderr, "Message sent\n");fflush(stderr); + bool stopped = false; + while(!stopped) { + int cmd; + std::string s; + fprintf(stderr, "Getting result of quit message\n");fflush(stderr); + handler->command_result_queue->dequeue(cmd, s, true); + fprintf(stderr, "got %d\n", cmd);fflush(stderr); + if (cmd == RESULT_QUIT) { + stopped = true; + } } } @@ -140,16 +194,23 @@ void rkt_webview_init() char buf[1024]; #ifdef DEBUG sprintf(buf, "rktwebview-dbg"); +#else +#ifdef _WIN32 + DWORD p = GetCurrentProcessId(); + sprintf(buf, "rktwebview-%ld", p); #else pid_t p = getpid(); sprintf(buf, "rktwebview-%x", p); +#endif #endif handler = new Handle_t; + handler->valid = true; handler->name = buf; handler->shm_size = SHM_SIZE; handler->shm = new Shm(handler->name.data(), handler->shm_size, true); + if (!handler->shm->isValid()) { handler->valid = false; } handler->command_queue = new ShmQueue(handler->shm, COMMAND_SLOT, true); handler->command_result_queue = new ShmQueue(handler->shm, COMMAND_RESULT_SLOT, true); handler->event_queue = new ShmQueue(handler->shm, EVENT_SLOT, true); @@ -157,6 +218,7 @@ void rkt_webview_init() // Start rktwebview_prg application with the right information #ifndef DEBUG handler->rkt_webview_prg_started = runRktWebview(handler); + if (!handler->rkt_webview_prg_started) { handler->valid = false; } #endif } } @@ -164,7 +226,7 @@ void rkt_webview_init() bool rkt_webview_valid(rktwebview_t wv) { rkt_webview_init(); - if (handler != nullptr && handler->rkt_webview_prg_started) { + if (handler != nullptr && handler->valid) { handler->command_queue->enqueue(CMD_HANDLE_IS_VALID); int result; std::string json_result; @@ -175,9 +237,21 @@ bool rkt_webview_valid(rktwebview_t wv) } } +static inline bool validHandle() +{ + return (handler != nullptr) && handler->valid; +} + +#define FAIL_HANDLE if (!validHandle()) { return result_t::invalid_handle; } +#define FAIL_CONTEXT if (!validHandle()) { return 0; } +#define FAIL_WV if (!validHandle()) { return 0; } +#define NOOP_HANDLE if (!validHandle()) { return; } +#define FAIL_CALL_JS if (!validHandle()) { return nullptr; } + rkt_wv_context_t rkt_webview_new_context(const char *boilerplate_js, const char *optional_server_cert_pem) { rkt_webview_init(); + FAIL_CONTEXT JSON j; @@ -200,6 +274,8 @@ rkt_wv_context_t rkt_webview_new_context(const char *boilerplate_js, const char int rkt_webview_create(rkt_wv_context_t context, rktwebview_t parent) { rkt_webview_init(); + FAIL_WV + JSON j; j["context"] = context; j["parent"] = parent; @@ -216,6 +292,7 @@ int rkt_webview_create(rkt_wv_context_t context, rktwebview_t parent) void rkt_webview_close(rktwebview_t wv) { rkt_webview_init(); + NOOP_HANDLE JSON j; j["wv"] = wv; @@ -224,6 +301,7 @@ void rkt_webview_close(rktwebview_t wv) #define CMDRES4(cmd, wv, key, val, key2, val2, key3, val3, key4, val4) \ rkt_webview_init(); \ + FAIL_HANDLE \ JSON j; \ j["wv"] = wv; \ j[key] = val; \ @@ -268,6 +346,7 @@ result_t rkt_webview_run_js(rktwebview_t wv, const char *js) rkt_data_t *rkt_webview_call_js(rktwebview_t wv, const char *js) { rkt_webview_init(); + FAIL_CALL_JS JSON j; j["wv"] = wv; @@ -380,6 +459,7 @@ result_t rkt_webview_file_save(rktwebview_t w, const char *title, const char *ba void rkt_webview_set_ou_token(rktwebview_t wv, const char *token) { rkt_webview_init(); + NOOP_HANDLE JSON j; j["wv"] = wv; @@ -401,7 +481,7 @@ void rkt_webview_free_data(rkt_data_t *d) free(d->data.js_result.value); free(d); } else { - fprintf(stderr, "UNEXPECTED: data kind %d cannot be freed\n", d->kind); + fprintf(stderr, "UNEXPECTED: data kind %d cannot be freed\n", d->kind);fflush(stderr); } } @@ -440,7 +520,7 @@ rkt_data_t *rkt_webview_get_event() memcpy(d->data.event.event, data.c_str(), ds); d->data.event.event[ds] = '\0'; d->data.event.wv = wv; - fprintf(stderr, "event: %d - '%s'\n", d->data.event.wv, d->data.event.event); + //fprintf(stderr, "event: %d - '%s'\n", d->data.event.wv, d->data.event.event);fflush(stderr); return d; } else { return nullptr; diff --git a/rktwebview_qt/rktwebview_qt.cpp b/rktwebview_qt/rktwebview_qt.cpp index 31d9afc..dd99de1 100644 --- a/rktwebview_qt/rktwebview_qt.cpp +++ b/rktwebview_qt/rktwebview_qt.cpp @@ -31,6 +31,7 @@ void Rktwebview_qt::processCommand(Command *cmd) switch(cmd->cmd) { case COMMAND_QUIT: { // Quit application _app->quit(); + cmd->done = true; } break; case COMMAND_NEW_CONTEXT: { @@ -640,6 +641,8 @@ void Rktwebview_qt::rktQuit() { Command c(COMMAND_QUIT); postCommand(&c); + + while(!c.done) { doEvents(); } } result_t Rktwebview_qt::fileDlg(rktwebview_t w, const char *title, const char *base, const char *filters,QFileDialog::FileMode mode, QFileDialog::AcceptMode am, QString evt_ok, QString evt_cancel) diff --git a/rktwebview_qt/rktwebview_test.cpp b/rktwebview_qt/rktwebview_test.cpp index eca74bb..9075755 100644 --- a/rktwebview_qt/rktwebview_test.cpp +++ b/rktwebview_qt/rktwebview_test.cpp @@ -1,16 +1,34 @@ #include "rktwebview.h" #include + +#ifdef _WIN32 +#include +#else #include +#endif +#include "utils.h" int main(int argc, char *argv[]) -{std::string me = argv[0]; - int idx = me.rfind("/"); +{ + std::string me = argv[0]; - std::string loc = me.substr(0, idx); + std::string loc = basedir(me); +#ifdef _WIN32 + std::string prg = loc + "\\rktwebview_prg.exe"; + SetDllDirectoryA("C:\\Qt\\6.10.2\\msvc2022_64\\bin"); +#else std::string prg = loc + "/rktwebview_prg"; +#endif +#ifdef _WIN32 + { + std::string e = std::string("RKT_WEBVIEW_PRG=") + prg; + _putenv(e.c_str()); + } +#else setenv("RKT_WEBVIEW_PRG", prg.c_str(), true); setenv("LD_LIBRARY_PATH", loc.c_str(), true); +#endif int context = rkt_webview_new_context("", nullptr); @@ -24,9 +42,13 @@ int main(int argc, char *argv[]) rkt_data_t *d = rkt_webview_get_event(); rkt_webview_free_data(d); } +#ifdef _WIN32 + Sleep(10); +#else sleep(10); +#endif rkt_webview_close(wv); rkt_webview_cleanup(); -} \ No newline at end of file +} diff --git a/rktwebview_qt/rktwebview_types.h b/rktwebview_qt/rktwebview_types.h index 51dcaea..e0b1e19 100644 --- a/rktwebview_qt/rktwebview_types.h +++ b/rktwebview_qt/rktwebview_types.h @@ -30,7 +30,8 @@ typedef enum { choose_dir_failed = 14, open_file_failed = 15, save_file_failed = 16, - failed = 17 + failed = 17, + invalid_handle = 18 } result_t; typedef struct { diff --git a/rktwebview_qt/shm.cpp b/rktwebview_qt/shm.cpp index e2b4b59..1a506a2 100644 --- a/rktwebview_qt/shm.cpp +++ b/rktwebview_qt/shm.cpp @@ -1,17 +1,6 @@ #include "shm.h" - -#ifdef __linux - -#include -#include #include -#include -#include -#include -#include -#include -#include -#include +#include typedef struct __shm_item__ { @@ -22,35 +11,26 @@ typedef struct __shm_item__ { } ShmItem; -class ShmApi +class ShmApiBase { -private: - int _shm_fd; - size_t _size; - bool _owner; - void *_mem; - sem_t *_sem; +protected: + char *_mem; - char *_mem_name; - char *_sem_name; - - size_t *_used; + int *_used; ShmPlace *_slots; ShmPlace *_first; ShmPlace *_free_list; + char *_mem_name; + char *_sem_name; + int _in_critical; - -private: - void cleanup() { - // We don't need to do anything here. - - } + size_t _size; + bool _owner; public: - ShmSem *makeSem(const char *name, bool owner) { - return new ShmSem(name, owner); - } + virtual void enterCritical() = 0; + virtual void leaveCritical() = 0; public: int slot(int s) { @@ -71,7 +51,7 @@ public: if (place == SHM_NULL) { *p = nullptr; } else { - *p = reinterpret_cast(reinterpret_cast(_mem) + place); + *p = reinterpret_cast(_mem + place); } } @@ -81,7 +61,7 @@ public: return nullptr; } - return reinterpret_cast(_mem) + place; + return _mem + place; } public: @@ -125,7 +105,7 @@ public: } else { ShmPlace p_i = *_used; i = reinterpret_cast(reinterpret_cast(_mem) + p_i); - size_t u = *_used + sizeof(ShmItem) + bytes; + int u = static_cast(*_used + sizeof(ShmItem) + bytes); if (u >= _size) { place = SHM_NULL; @@ -185,6 +165,66 @@ public: leaveCritical(); } +public: + ShmSem *makeSem(const char *name, bool owner) { + return new ShmSem(name, owner); + } + +public: + ShmApiBase(const char *name, size_t size, bool owner) { + char *buf = reinterpret_cast(malloc(strlen(name) + 50)); + sprintf(buf, "sem_%s", name); + _sem_name = _strdup(buf); + _mem_name = _strdup(name); + ::free(buf); + + _owner = owner; + + _size = size; + + _used = nullptr; + _slots = nullptr; + _first = nullptr; + _free_list = nullptr; + _mem = nullptr; + + _in_critical = 0; + } + + virtual ~ShmApiBase() + { + ::free(_sem_name); + ::free(_mem_name); + } +}; + +#ifdef __linux + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +class ShmApi : public ShmApiBase +{ +private: + int _shm_fd; + sem_t *_sem; + +private: + void cleanup() { + // We don't need to do anything here. + + } + +public: void enterCritical() { if (_in_critical > 0) { _in_critical++; @@ -204,19 +244,17 @@ public: } public: - ShmApi(const char *name, size_t size, bool owner) { - - { - char buf[strlen(name) + 50]; - sprintf(buf, "sem_%s", name); - _sem_name = strdup(buf); - _mem_name = strdup(name); - } + bool isValid() { + return true; + } +public: + ShmApi(const char *name, size_t size, bool owner) : ShmApiBase(name, size, owner) + { size_t slots_size = sizeof(ShmPlace) * SHM_MAX_SLOTS; size += slots_size; - if (owner) { + if (_owner) { _sem = sem_open(_sem_name, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR, 0); _shm_fd = shm_open(name, O_CREAT | O_RDWR, 0600); ftruncate(_shm_fd, size); @@ -224,21 +262,18 @@ public: _sem = sem_open(_sem_name, O_RDWR, S_IRUSR | S_IWUSR, 0); _shm_fd = shm_open(name, O_RDWR, 0600); } - _size = size; _mem = mmap(nullptr, _size, PROT_READ|PROT_WRITE, MAP_SHARED, _shm_fd, 0); - _slots = reinterpret_cast (reinterpret_cast(_mem) + sizeof(size_t) + sizeof(ShmPlace) + sizeof(ShmPlace)); - _used = reinterpret_cast(_mem); + _slots = reinterpret_cast (_mem + sizeof(int) + sizeof(ShmPlace) + sizeof(ShmPlace)); + _used = reinterpret_cast(_mem); - _first = reinterpret_cast(reinterpret_cast(_mem) + sizeof(size_t)); - _free_list = reinterpret_cast(reinterpret_cast(_mem) + sizeof(size_t) + sizeof(ShmPlace)); - - _owner = owner; + _first = reinterpret_cast(_mem + sizeof(int)); + _free_list = reinterpret_cast(_mem + sizeof(int) + sizeof(ShmPlace)); if (_owner) { *_first = SHM_NULL; *_free_list = SHM_NULL; - *_used = sizeof(size_t) + sizeof(ShmItem *) + sizeof(ShmItem *) + slots_size; + *_used = sizeof(int) + sizeof(ShmItem *) + sizeof(ShmItem *) + slots_size; sem_post(_sem); } @@ -254,44 +289,241 @@ public: shm_unlink(_mem_name); sem_unlink(_sem_name); } - ::free(_mem_name); - ::free(_sem_name); } }; + +class ShmSemApi { + private: + sem_t *_sem; + char *_name; + bool _owner; + + public: + void post() { + sem_post(_sem); + } + + void wait() { + int r = sem_wait(_sem); + if (r != 0) { + fprintf(stderr, "sem_wait error: %d, %s\n", errno, strerror(errno)); + } + } + + bool trywait() { + int r = sem_trywait(reinterpret_cast(_sem)); + if (r != 0 && r != EAGAIN) { + fprintf(stderr, "sem_wait error: %d, %s\n", errno, strerror(errno)); + } + + return (r == 0); + } + + public: + ShmSemApi(const char *n, bool owner) { + _name = strdup(n); + + sem_t *s; + if (owner) { + s = sem_open(n, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR, 0); + } else { + s = sem_open(n, O_RDWR, S_IRUSR | S_IWUSR, 0); + } + _sem = s; + _owner = owner; + } + + virtual ~ShmSemApi() { + sem_close(_sem); + if (_owner) { + sem_unlink(_name); + } + free(_name); + } + }; +}; + +public: +}; #endif #ifdef _WIN32 -class ShmApi +#include + +class ShmApi : public ShmApiBase { +private: + HANDLE _shm_handle; + HANDLE _sem_handle; + bool _valid; + public: - ShmApi(const char *name, size_t size, bool owner) + ShmApi(const char *name, size_t size, bool owner) : ShmApiBase(name, size, owner) { + size_t slots_size = sizeof(ShmPlace) * SHM_MAX_SLOTS; + size += slots_size; + + _valid = true; + if (_owner) { + _shm_handle = CreateFileMappingA(INVALID_HANDLE_VALUE, + NULL, + PAGE_READWRITE, + 0, + static_cast(size), // size must be smaller < 2GB + name); + + if (_shm_handle == NULL) { + fprintf(stderr, "Cannot create shared memory with name %s and size %lld\n", name, size); + _valid = false; + } + } else { + _shm_handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, + FALSE, + name); + if (_shm_handle == NULL) { + fprintf(stderr, "Cannot open shared memory with name %s\n", name); + _valid = false; + } + } + + if (_valid) { + _mem = static_cast(MapViewOfFile(_shm_handle, + FILE_MAP_ALL_ACCESS, + 0, + 0, + size)); + if (_mem == NULL) { + fprintf(stderr, "Cannot map shared memory, errorcode = %ld\n", GetLastError()); + _valid = false; + CloseHandle(_shm_handle); + } + } + + if (_valid) { + if (_owner) { + _sem_handle = CreateSemaphoreA(NULL, + 1, + 10000, + _sem_name + ); + } else { + _sem_handle = OpenSemaphoreA(SYNCHRONIZE|SEMAPHORE_MODIFY_STATE, FALSE, _sem_name); + } + if (_sem_handle == NULL) { + fprintf(stderr, "Cannot create or open semaphore with name '%s' (%ld)\n", _sem_name, GetLastError()); + UnmapViewOfFile(_mem); + CloseHandle(_shm_handle); + _valid = false; + } + } + + if (_valid) { + _slots = reinterpret_cast (_mem + sizeof(int) + sizeof(ShmPlace) + sizeof(ShmPlace)); + _used = reinterpret_cast(_mem); + + _first = reinterpret_cast(_mem + sizeof(int)); + _free_list = reinterpret_cast(_mem + sizeof(int) + sizeof(ShmPlace)); + + if (_owner) { + *_first = SHM_NULL; + *_free_list = SHM_NULL; + *_used = sizeof(int) + sizeof(ShmItem *) + sizeof(ShmItem *) + slots_size; + } + } } ~ShmApi() { + if (_valid) { + UnmapViewOfFile(_mem); + CloseHandle(_shm_handle); + CloseHandle(_sem_handle); + } + } + + bool isValid() { + return _valid; } void enterCritical() { - + if (_in_critical > 0) { + _in_critical++; + } else { + WaitForSingleObject(_sem_handle, INFINITE); + _in_critical = 1; + } } void leaveCritical() { - + if (_in_critical > 1) { + _in_critical--; + } else { + _in_critical = 0; + ReleaseSemaphore(_sem_handle, 1, NULL); + } } - void *alloc(size_t bytes) + ShmSem *sem(const char *name, bool owner) { - return malloc(bytes); + return nullptr; + } +}; + + +class ShmSemApi { +private: + HANDLE _sem; + char *_name; + bool _owner; + +public: + void post() { + ReleaseSemaphore(_sem, 1, NULL); } - void free(void *mem) - { - free(mem); + void wait() { + DWORD r = WaitForSingleObject(_sem, INFINITE); + if (r != WAIT_OBJECT_0) { + fprintf(stderr, "sem_wait error: %ld\n", r); + } } -} + + bool trywait() { + DWORD r = WaitForSingleObject(_sem , 0); + if (r != WAIT_OBJECT_0 && r != WAIT_TIMEOUT) { + fprintf(stderr, "sem_wait error: %ld\n", r); + } + return r == WAIT_OBJECT_0; + } + +public: + ShmSemApi(const char *n, bool owner) { + _name = _strdup(n); + + if (owner) { + _sem = CreateSemaphoreA(NULL, + 0, + 10000, + _name); + } else { + _sem = OpenSemaphoreA(SYNCHRONIZE|SEMAPHORE_MODIFY_STATE, FALSE, _name); + } + + if (_sem == NULL) { + fprintf(stderr, "Cannot create or open semaphore with name '%s'\n", _name); + } + _owner = owner; + } + + virtual ~ShmSemApi() { + if (_sem != NULL) { + CloseHandle(_sem); + } + } +}; + #endif @@ -326,6 +558,11 @@ ShmSem *Shm::sem(const char *name, bool owner) return _shm_api->makeSem(name, owner); } +bool Shm::isValid() +{ + return _shm_api->isValid(); +} + const char *Shm::name() { return _shm_api->name(); @@ -352,44 +589,22 @@ Shm::~Shm() } - void ShmSem::post() { - sem_post(reinterpret_cast(_sem)); + _api->post(); } void ShmSem::wait() { - int r = sem_wait(reinterpret_cast(_sem)); - if (r != 0) { - fprintf(stderr, "sem_wait error: %d, %s\n", errno, strerror(errno)); - } + _api->wait(); } bool ShmSem::trywait() { - int r = sem_trywait(reinterpret_cast(_sem)); - if (r != 0 && r != EAGAIN) { - fprintf(stderr, "sem_wait error: %d, %s\n", errno, strerror(errno)); - } - - return (r == 0); + return _api->trywait(); } ShmSem::ShmSem(const char *n, bool owner) { - _name = strdup(n); - - sem_t *s; - if (owner) { - s = sem_open(n, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR, 0); - } else { - s = sem_open(n, O_RDWR, S_IRUSR | S_IWUSR, 0); - } - _sem = reinterpret_cast(s); - _owner = owner; + _api = new ShmSemApi(n, owner); } ShmSem::~ShmSem() { - sem_close(reinterpret_cast(_sem)); - if (_owner) { - sem_unlink(_name); - } - free(_name); + delete _api; } diff --git a/rktwebview_qt/shm.h b/rktwebview_qt/shm.h index 1b567df..8de1d08 100644 --- a/rktwebview_qt/shm.h +++ b/rktwebview_qt/shm.h @@ -4,6 +4,7 @@ #include class ShmApi; +class ShmSemApi; typedef int ShmPlace; typedef int ShmSlot; @@ -12,9 +13,7 @@ typedef int ShmSlot; class ShmSem { private: - void *_sem; - char *_name; - bool _owner; + ShmSemApi *_api; public: void post(); @@ -44,6 +43,9 @@ public: public: ShmSem *sem(const char *name, bool owner); +public: + bool isValid(); + public: const char *name(); diff --git a/rktwebview_qt/utils.h b/rktwebview_qt/utils.h new file mode 100644 index 0000000..b8284c3 --- /dev/null +++ b/rktwebview_qt/utils.h @@ -0,0 +1,29 @@ +#ifndef UTILS_H +#define UTILS_H + +#include + +inline std::string basedir(const std::string &path) +{ + int idx1 = path.rfind("/"); + int idx2 = path.rfind("\\"); + std::string r; + if (idx1 == std::string::npos && idx2 == std::string::npos) { + r = ""; + } else { + int idx; + if (idx1 == std::string::npos) { + idx = idx2; + } else if (idx2 == std::string::npos) { + idx = idx1; + } else if (idx1 < idx2) { + idx = idx2; + } else { + idx = idx1; + } + r = path.substr(0, idx); + } + return r; +} + +#endif // UTILS_H