internal static void Initialize(CfxRenderProcessMainDelegate renderProcessMainCallback, ref CfxApp app) { if(app == null) { m_app = new CfxApp(); app = m_app; } else { m_app = app; m_browserProcessHandler = m_app.RetrieveBrowserProcessHandler(); } if(m_browserProcessHandler == null) { m_browserProcessHandler = new CfxBrowserProcessHandler(); m_app.GetBrowserProcessHandler += (sender, e) => e.SetReturnValue(m_browserProcessHandler); } RemoteService.renderProcessMainCallback = renderProcessMainCallback; m_browserProcessHandler.OnBeforeChildProcessLaunch += OnBeforeChildProcessLaunch; }
internal static void Initialize(CfxRenderProcessMainDelegate renderProcessMainCallback, ref CfxApp app) { if (app == null) { m_app = new CfxApp(); app = m_app; } else { m_app = app; m_browserProcessHandler = m_app.RetrieveBrowserProcessHandler(); } if (m_browserProcessHandler == null) { m_browserProcessHandler = new CfxBrowserProcessHandler(); m_app.GetBrowserProcessHandler += (sender, e) => e.SetReturnValue(m_browserProcessHandler); } RemoteService.renderProcessMainCallback = renderProcessMainCallback; m_browserProcessHandler.OnBeforeChildProcessLaunch += OnBeforeChildProcessLaunch; }
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; }
/// <summary> /// 初始化 /// </summary> internal static void Initialize() { if (initialized) { throw new WebEngineException("对不起!初始化工作已经完成,请勿重复执行初始化工作。"); } 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) => Bootstrapper.RaiseOnBeforeCommandLineProcessing(e); app.OnRegisterCustomSchemes += (s, e) => Bootstrapper.RaiseOnRegisterCustomSchemes(e); var settings = new CfxSettings(); settings.MultiThreadedMessageLoop = true; settings.NoSandbox = true; Bootstrapper.RaiseOnBeforeCfxInitialize(settings, processHandler); //if (!CfxRuntime.Initialize(settings, app, RenderProcess.RenderProcessMain)) if (!CfxRuntime.Initialize(settings, app)) { throw new WebEngineException("对不起!无法初始化 CEF 运行库。"); } initialized = true; }
internal OnCSBeforeCfxInitializeEventArgs(CfxSettings settings, CfxBrowserProcessHandler processHandler) { Settings = settings; ProcessHandler = processHandler; }
/// <summary> /// 执行浏览器初始化之前回调事件 /// </summary> /// <param name="settings">全局参数设置</param> /// <param name="processHandler">浏览器进程处理</param> internal static void RaiseOnBeforeCfxInitialize(CfxSettings settings, CfxBrowserProcessHandler processHandler) { OnBeforeCfxInitialize?.Invoke(null, new OnBeforeCfxInitializeEventArgs(settings, processHandler)); }
internal static void Initialize() { _mono = Type.GetType("Mono.Runtime") != null; if (initialized) { throw new ChromiumWebBrowserException("ChromiumWebBrowser library already initialized."); } int retval = CfxRuntime.ExecuteProcess(); if (retval >= 0) { Environment.Exit(retval); } app = new CfxApp(); processHandler = new CfxBrowserProcessHandler(); processHandler.OnBeforeChildProcessLaunch += ProcessHandler_OnBeforeChildProcessLaunch; app.GetBrowserProcessHandler += (s, e) => e.SetReturnValue(processHandler); app.OnBeforeCommandLineProcessing += (s, e) => ChromiumWebBrowserBase.RaiseOnBeforeCommandLineProcessing(e); app.OnRegisterCustomSchemes += (s, e) => ChromiumWebBrowserBase.RaiseOnRegisterCustomSchemes(e); var settings = new CfxSettings(); //FIXED different default settings based on platform switch (CfxRuntime.PlatformOS) { case CfxPlatformOS.Linux: settings.MultiThreadedMessageLoop = false; //TODO less demanding way of using DoMessageLoopWork, ExernalMessageLoop = true doesn't seem to work Application.Idle += BrowserMessageLoopStep; break; default: settings.MultiThreadedMessageLoop = true; Application.ApplicationExit += Application_ApplicationExit; break; } settings.NoSandbox = true; ChromiumWebBrowserBase.RaiseOnBeforeCfxInitialize(settings, processHandler); //ChromiumWebBrowserBase.WindowLess = settings.WindowlessRenderingEnabled; Console.WriteLine(" ****************** window Less " + ChromiumWebBrowserBase.WindowLess); //if(!CfxRuntime.Initialize(settings, app, RenderProcess.RenderProcessMain)) // throw new ChromiumWebBrowserException("Failed to initialize CEF library."); if (CfxRuntime.PlatformOS == CfxPlatformOS.Windows) { if (!CfxRuntime.Initialize(settings, app, RenderProcess.RenderProcess.RenderProcessMain)) { throw new ChromiumWebBrowserException("Failed to initialize CEF library."); } } else { Console.WriteLine("()()*()*(**()*)(*()*))"); if (!CfxRuntime.Initialize(settings, app)) { Environment.Exit(-1); } } initialized = true; }
static void ChromiumWebBrowser_OnBeforeCfxInitialize(CfxSettings settings, CfxBrowserProcessHandler processHandler, out CfxOnBeforeCommandLineProcessingEventHandler onBeforeCommandLineProcessingEventHandler) { throw new NotImplementedException(); }