File tree Expand file tree Collapse file tree 3 files changed +17
-4
lines changed
Expand file tree Collapse file tree 3 files changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ proc jsExecBuffer*(js: var JSProcess, data: string) =
3333
3434 js.parser = newParser (data.buffer.decode ())
3535 js.runtime = newRuntime (data.name.decode (), js.parser.parse ())
36- window.generateIR (js.runtime)
36+ window.generateIR (js.runtime, js.ipc )
3737 jsdoc.generateIR (js.runtime)
3838 jswebsocket.generateBindings (js.runtime, js.ipc)
3939 jsdoc.updateDocumentState (js.runtime, js.document)
Original file line number Diff line number Diff line change @@ -448,7 +448,8 @@ proc packetHandler*(
448448 of feRendererGotoURL:
449449 let data = tryParseJson (data, RendererGotoURL )
450450
451- if process.kind != Renderer :
451+ if process.kind notin {Renderer , JSRuntime }:
452+ # TODO : separate magic code for jsruntime
452453 master.server.reportBadMessage (
453454 process, " Non-renderer process attempted to use `feRendererGotoURL`!" , High
454455 )
Original file line number Diff line number Diff line change 11import std/ [logging, tables]
2- import bali/ runtime/ prelude
2+ import bali/ runtime/ prelude, bali / internal / sugar
33import ../../ components/ build_utils
4+ import ../../ components/ ipc/ client/ prelude
5+ import ../../ components/ renderer/ ipc
46import pretty
57
68type
1315
1416 JSWindow * = object
1517
16- proc generateIR * (runtime: Runtime ) =
18+ proc generateIR * (runtime: Runtime , ipc: var IPCClient ) =
1719 debug " components/web/window: generating interfaces"
1820 runtime.registerType (" navigator" , JSNavigator )
1921 runtime.setProperty (JSNavigator , " appCodeName" , str (" Mozilla" ))
@@ -23,3 +25,13 @@ proc generateIR*(runtime: Runtime) =
2325 runtime.setProperty (
2426 JSNavigator , " oscpu" , str (hostOS & ' ' & getArchitectureUAString ())
2527 )
28+
29+ var pIpc = addr (ipc)
30+ runtime.registerType (" window" , JSWindow )
31+ runtime.defineFn (
32+ JSWindow ,
33+ " open" ,
34+ proc () =
35+ let url = runtime.ToString (& runtime.argument (1 , required = true ))
36+ pIpc[].send (RendererGotoURL (url: url)),
37+ )
You can’t perform that action at this time.
0 commit comments