public App(RenderDelegate appDelegate) : base(typeof (CefApp)) { _delegate = appDelegate; _browserProcessHandler = new BrowserProcessHandler(appDelegate); _renderProcessHandler = new RenderProcessHandler(appDelegate); _resourceBundleHandler = new ResourceBundleHandler(appDelegate); _getResourceBundleHandlerCallback = OnGetResourceBundleHandler; _getRenderProcessHandlerCallback = GetRenderProcessHandler; _getBrowserProcessHandlerCallback = OnGetBrowserProcessHandler; _beforeCommandLineProcessingCallback = OnBeforeCommandLineProcessing; _registerCustomSchemeCallback = OnRegisterCustomScheme; MarshalToNative(new CefApp { Base = DedicatedBase, OnBeforeCommandLineProcessing = Marshal.GetFunctionPointerForDelegate(_beforeCommandLineProcessingCallback), CefCallbackGetRenderProcessHandler = Marshal.GetFunctionPointerForDelegate(_getRenderProcessHandlerCallback), OnRegisterCustomSchemes = Marshal.GetFunctionPointerForDelegate(_registerCustomSchemeCallback), CefCallbackGetBrowserProcessHandler = Marshal.GetFunctionPointerForDelegate(_getBrowserProcessHandlerCallback), CefCallbackGetResourceBundleHandler = Marshal.GetFunctionPointerForDelegate(_getResourceBundleHandlerCallback) }); }
internal int RenderProcessStartup() { var remoteProcessId = CfxRemoteCallContext.CurrentContext.ProcessId; _CfrApp = new CfrApp(); _RenderProcessHandler = new RenderProcessHandler(_CfrApp, remoteProcessId); _RenderProcessHandler.OnNewFrame += (e) => { _TaskContextCreatedEventArgs.TrySetResult(new ChromiumFxWebView(e.Browser, Logger)); }; _CfrApp.GetRenderProcessHandler += (s, e) => { try { e.SetReturnValue(_RenderProcessHandler); } catch (Exception ex) { Logger?.Error($"Exception raised during GetRenderProcessHandler SetReturnValue {ex.Message}, loading task is {_TaskContextCreatedEventArgs.Task.Status}"); throw; } }; return(CfrRuntime.ExecuteProcess(_CfrApp)); }
private RenderProcess() { RemoteProcessId = CfxRemoteCallContext.CurrentContext.ProcessId; app = new CfrApp(); processHandler = new RenderProcessHandler(this); app.GetRenderProcessHandler += (s, e) => e.SetReturnValue(processHandler); }