@@ -7,10 +7,11 @@ use winit::event::WindowEvent;
77use crate :: cef:: dirs:: { cef_cache_dir, cef_data_dir} ;
88
99use super :: input:: InputState ;
10+ use super :: ipc:: { MessageType , SendMessage } ;
1011use super :: scheme_handler:: { FRONTEND_DOMAIN , GRAPHITE_SCHEME } ;
1112use super :: { CefEventHandler , input} ;
1213
13- use super :: internal:: { AppImpl , ClientImpl , NonBrowserAppImpl , RenderHandlerImpl } ;
14+ use super :: internal:: { BrowserProcessAppImpl , BrowserProcessClientImpl , RenderHandlerImpl , RenderProcessAppImpl } ;
1415
1516pub ( crate ) struct Setup { }
1617pub ( crate ) struct Initialized { }
@@ -42,7 +43,7 @@ impl Context<Setup> {
4243
4344 if !is_browser_process {
4445 let process_type = CefString :: from ( & cmd. switch_value ( Some ( & switch) ) ) ;
45- let mut app = NonBrowserAppImpl :: app ( ) ;
46+ let mut app = RenderProcessAppImpl :: app ( ) ;
4647 let ret = execute_process ( Some ( args. as_main_args ( ) ) , Some ( & mut app) , std:: ptr:: null_mut ( ) ) ;
4748 if ret >= 0 {
4849 return Err ( SetupError :: SubprocessFailed ( process_type. to_string ( ) ) ) ;
@@ -70,7 +71,7 @@ impl Context<Setup> {
7071 } ;
7172
7273 // Attention! Wrapping this in an extra App is necessary, otherwise the program still compiles but segfaults
73- let mut cef_app = App :: new ( AppImpl :: new ( event_handler. clone ( ) ) ) ;
74+ let mut cef_app = App :: new ( BrowserProcessAppImpl :: new ( event_handler. clone ( ) ) ) ;
7475
7576 let result = initialize ( Some ( self . args . as_main_args ( ) ) , Some ( & settings) , Some ( & mut cef_app) , std:: ptr:: null_mut ( ) ) ;
7677 if result != 1 {
@@ -81,8 +82,8 @@ impl Context<Setup> {
8182 return Err ( InitError :: InitializationFailed ( cef_exit_code) ) ;
8283 }
8384
84- let render_handler = RenderHandlerImpl :: new ( event_handler. clone ( ) ) ;
85- let mut client = Client :: new ( ClientImpl :: new ( RenderHandler :: new ( render_handler) ) ) ;
85+ let render_handler = RenderHandler :: new ( RenderHandlerImpl :: new ( event_handler. clone ( ) ) ) ;
86+ let mut client = Client :: new ( BrowserProcessClientImpl :: new ( render_handler, event_handler . clone ( ) ) ) ;
8687
8788 let url = CefString :: from ( format ! ( "{GRAPHITE_SCHEME}://{FRONTEND_DOMAIN}/" ) . as_str ( ) ) ;
8889
@@ -129,6 +130,10 @@ impl Context<Initialized> {
129130 browser. host ( ) . unwrap ( ) . was_resized ( ) ;
130131 }
131132 }
133+
134+ pub ( crate ) fn send_web_message ( & self , message : & [ u8 ] ) {
135+ self . send_message ( MessageType :: SendToJS , message) ;
136+ }
132137}
133138
134139impl < S : ContextState > Drop for Context < S > {
0 commit comments