22# # It essentially allows you to do anything with your own group of processes (renderer, JS runtime, CSS/HTML parsers, etc.)
33# # This includes summoning them, telling them to do a task, telling them to exit, et cetera.
44
5+ import std/ [os, logging, osproc, strutils, options, net, sets, terminal, posix, tables]
56import
6- std/
7- [os, logging, osproc, strutils, options, base64, net, sets, terminal, posix, tables]
8- import ../../ components/ ipc/ server/ prelude
9- import jsony
10- import ./ summon
11- import pretty
7+ pkg/ [jsony, pretty],
8+ pkg/ sanchar/ parse/ url,
9+ pkg/ sanchar/ proto/ http/ shared,
10+ pkg/ simdutf/ base64
1211
13- # Process specific imports
14-
15- # Network
16- import sanchar/ parse/ url
17- import sanchar/ proto/ http/ shared
18-
19- import ../../ components/ shared/ [nix, sugar]
2012import
13+ ../../ components/ shared/ [nix, sugar],
2114 ../../ components/
22- [network/ ipc, renderer/ ipc, parsers/ html/ ipc, parsers/ html/ document, js/ ipc]
23- import ../../ components/ web/ cookie/ parsed_cookie
15+ [network/ ipc, renderer/ ipc, parsers/ html/ ipc, parsers/ html/ document, js/ ipc],
16+ ../../ components/ web/ cookie/ parsed_cookie,
17+ ../../ components/ ipc/ server/ prelude,
18+ ./ summon
2419
2520when defined (unix):
2621 import std/ posix
@@ -139,7 +134,9 @@ proc parseHTML*(
139134
140135 info (" Sending group $1 HTML parser process a request to parse some HTML" % [$ group])
141136
142- master.server.send ((& process).socket, ParseHTMLPacket (source: encode (source)))
137+ master.server.send (
138+ (& process).socket, ParseHTMLPacket (source: encode (source, urlSafe = true ))
139+ )
143140
144141 info (" Waiting for response from group $1 HTML parser process" % [$ group])
145142
@@ -217,7 +214,8 @@ proc executeJS*(
217214 var prc = & process
218215 assert prc.kind == JSRuntime
219216 master.server.send (
220- prc.socket, JSExecPacket (name: name.encode (), buffer: code.encode ())
217+ prc.socket,
218+ JSExecPacket (name: name.encode (urlSafe = true ), buffer: code.encode (urlSafe = true )),
221219 )
222220
223221 info " Dispatching JS code to runtime process."
@@ -236,7 +234,7 @@ proc setWindowTitle*(master: MasterProcess, title: string) {.inline.} =
236234 master.server.send (
237235 (& process).socket,
238236 RendererSetWindowTitle (
239- title: title.encode (safe = true ) # So that we can get spaces
237+ title: title.encode (urlSafe = true ) # So that we can get spaces
240238 ),
241239 )
242240
@@ -288,7 +286,7 @@ proc loadFont*(
288286 let encoded = encode (
289287 # encode the data in base64 to ensure that it doesn't mess up the JSON packet
290288 readFile file,
291- safe = true ,
289+ urlSafe = true ,
292290 )
293291 master.server.send (
294292 (& process).socket,
0 commit comments