private void Initialize() { CfxRuntime.LibCefDirPath = @"cef\Release"; int retval = CfxRuntime.ExecuteProcess(); var app = new CfxApp(); var processHandler = new CfxBrowserProcessHandler(); app.GetBrowserProcessHandler += (sender, e) => e.SetReturnValue(processHandler); var path = Path.Combine(GetType().Assembly.GetPath(), "ChromiumFXRenderProcess.exe"); var settings = new CfxSettings { SingleProcess = false, BrowserSubprocessPath = path, WindowlessRenderingEnabled = true, MultiThreadedMessageLoop = true, NoSandbox = true, LocalesDirPath = System.IO.Path.GetFullPath(@"cef\Resources\locales"), ResourcesDirPath = System.IO.Path.GetFullPath(@"cef\Resources") }; if (!CfxRuntime.Initialize(settings, app, RenderProcessStartup)) throw new Exception("Failed to initialize CEF library."); Thread.Sleep(200); }
internal static void Initialize() { if(initialized) throw new HtmlUIException("ChromiumWebBrowser library already initialized."); int retval = CfxRuntime.ExecuteProcess(); if(retval >= 0) Environment.Exit(retval); app = new CfxApp(); processHandler = new CfxBrowserProcessHandler(); app.GetBrowserProcessHandler += (s, e) => e.SetReturnValue(processHandler); app.OnBeforeCommandLineProcessing += (s, e) => HtmlUILauncher.RaiseOnBeforeCommandLineProcessing(e); app.OnRegisterCustomSchemes += (s, e) => HtmlUILauncher.RaiseOnRegisterCustomSchemes(e); var settings = new CfxSettings(); settings.MultiThreadedMessageLoop = true; settings.NoSandbox = true; HtmlUILauncher.RaiseOnBeforeCfxInitialize(settings, processHandler); if(!CfxRuntime.Initialize(settings, app, RenderProcess.RenderProcessMain)) throw new HtmlUIException("Failed to initialize CEF library."); initialized = true; }
internal static void get_browser_process_handler(IntPtr gcHandlePtr, out IntPtr __retval) { var self = (CfxApp)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target; if (self == null || self.CallbacksDisabled) { __retval = default(IntPtr); return; } var e = new CfxGetBrowserProcessHandlerEventArgs(); var eventHandler = self.m_GetBrowserProcessHandler; if (eventHandler != null) { eventHandler(self, e); } e.m_isInvalid = true; __retval = CfxBrowserProcessHandler.Unwrap(e.m_returnValue); }