internal BrowserClient(BrowserCore browserCore) { this.browserCore = browserCore; this.LifeSpanHandler = new ChromiumLifeSpanHandler(browserCore); this.GetLifeSpanHandler += (_, e) => { e.SetReturnValue(LifeSpanHandler); }; }
private void RenderProcessHandler_OnProcessMessageReceived(object sender, Chromium.Remote.Event.CfrOnProcessMessageReceivedEventArgs e) { var browserCore = BrowserCore.GetBrowserCore(e.Browser.Identifier); if (e.Message.Name.StartsWith(ProcessMessages.NANUI_MSG_PREFIX)) { var messageName = e.Message.Name.Substring(ProcessMessages.NANUI_MSG_PREFIX.Length); } }
private void RenderProcessHandler_OnContextCreated(object sender, Chromium.Remote.Event.CfrOnContextCreatedEventArgs e) { var browserCore = BrowserCore.GetBrowserCore(e.Browser.Identifier); if (browserCore != null) { RegisterObjectToGlobal(browserCore, e.Frame, e.Context); browserCore.RaiseOnV8ContextCreated(e.Browser, e.Frame, e.Context); } }
internal void AddBrowserReference(BrowserCore browser) { for (int i = 0; i < browserRefs.Count; ++i) { if (browserRefs[i].Target == null) { browserRefs[i] = new WeakReference(browser); return; } } browserRefs.Add(new WeakReference(browser)); }
internal static int RenderProcessMain() { try { var rp = new RenderProcess(); BrowserCore.OnRemoteProcessCreated(rp.processHandler); return(rp.Initialize()); } catch (CfxRemotingException) { return(-1); } }
private void RegisterObjectToGlobal(BrowserCore browser, CfrFrame frame, CfrV8Context context) { if (frame.IsMain) { SetProperties(context, browser.GlobalObject); } else { if (browser.frameGlobalObjects.TryGetValue(frame.Name, out JSObject obj)) { SetProperties(context, obj); } } }
private void RenderProcessHandler_OnBrowserCreated(object sender, Chromium.Remote.Event.CfrOnBrowserCreatedEventArgs e) { var browserCore = BrowserCore.GetBrowserCore(e.Browser.Identifier); if (browserCore != null) { var remoteProcess = browserCore.remoteProcess; if (remoteProcess != null && remoteProcess != renderProcess) { CfxRemoteCallbackManager.SuspendCallbacks(renderProcess.RemoteProcessId); } browserCore.SetRemoteBrowser(e.Browser, renderProcess); } }
internal EvaluateTask(BrowserCore core, string code, JSInvokeMode invokeMode, Action <CfrV8Value, CfrV8Exception> callback) { this.core = core; this.code = code; this.invokeMode = invokeMode; this.callback = callback; Execute += (s, e) => { if (invokeMode == JSInvokeMode.Invoke || (invokeMode == JSInvokeMode.Inherit && core.RemoteCallbacksWillInvoke)) { core.RenderThreadInvoke(() => Task_Execute(e)); } else { Task_Execute(e); } }; }
public RegisterTask(BrowserCore browserCore, string name, JSInvokeMode invokeMode, Action <CfrV8Value> globalTask) { this.name = name; this.browserCore = browserCore; this.invokeMode = invokeMode; this.globalTask = globalTask; Execute += (s, e) => { if (invokeMode == JSInvokeMode.Invoke || (invokeMode == JSInvokeMode.Inherit && browserCore.RemoteCallbacksWillInvoke)) { browserCore.RenderThreadInvoke(() => RegisterTask_Execute(e)); } else { RegisterTask_Execute(e); } }; }
private void RenderProcessHandler_OnWebKitInitialized(object sender, CfrEventArgs e) { baseExtension = new FormiumJavascriptExtension(); CfrRuntime.RegisterExtension("NanUI/Base", baseExtension.DefinitionJavascriptCode, baseExtension); foreach (var kv in Bootstrap.RegisterChromiumExtensionActions) { var name = kv.Key; var extension = kv.Value?.Invoke(); if (extension != null) { customExtensions.Add(name, extension); CfrRuntime.RegisterExtension(name, extension.DefinitionJavascriptCode, extension); } } BrowserCore.RaiseWebKitInitialized(); }
internal static void AddBrowserCore(BrowserCore browserCore) { lock (browserCoreRefs) { var deadRefs = new List <int>(browserCoreRefs.Count); foreach (var b in browserCoreRefs) { if (!b.Value.IsAlive) { deadRefs.Add(b.Key); } } foreach (var r in deadRefs) { browserCoreRefs.Remove(r); } browserCoreRefs[browserCore.Browser.Identifier] = new WeakReference(browserCore); //NanUI.Log("[BrowserCache] ".Yellow(), "Added new browser [".Gray(), $"{browserCore.Browser.Identifier}".Yellow(), "] to BrowserCache. There are [".Gray(), $"{browserCoreRefs.Count}".Yellow(), "] browser references.".Gray()); } }
internal void ClearParent() { Name = null; m_parent = null; m_browser = null; }
internal void SetBrowser(string propertyName, BrowserCore browser) { CheckUnboundState(); Name = propertyName; m_browser = browser; }
private void App_OnRegisterCustomSchemes(object sender, Chromium.Event.CfxOnRegisterCustomSchemesEventArgs e) { BrowserCore.RaiseOnRegisterCustomSchemes(e); }