Exemplo n.º 1
0
        internal BrowserClient(BrowserCore browserCore)
        {
            this.browserCore = browserCore;

            this.LifeSpanHandler = new ChromiumLifeSpanHandler(browserCore);

            this.GetLifeSpanHandler += (_, e) => { e.SetReturnValue(LifeSpanHandler); };
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 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));
 }
Exemplo n.º 5
0
 internal static int RenderProcessMain()
 {
     try
     {
         var rp = new RenderProcess();
         BrowserCore.OnRemoteProcessCreated(rp.processHandler);
         return(rp.Initialize());
     }
     catch (CfxRemotingException)
     {
         return(-1);
     }
 }
Exemplo n.º 6
0
 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);
         }
     }
 }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
 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);
         }
     };
 }
Exemplo n.º 9
0
 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);
         }
     };
 }
Exemplo n.º 10
0
        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();
        }
Exemplo n.º 11
0
        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());
            }
        }
Exemplo n.º 12
0
 internal void ClearParent()
 {
     Name      = null;
     m_parent  = null;
     m_browser = null;
 }
Exemplo n.º 13
0
 internal void SetBrowser(string propertyName, BrowserCore browser)
 {
     CheckUnboundState();
     Name      = propertyName;
     m_browser = browser;
 }
Exemplo n.º 14
0
 private void App_OnRegisterCustomSchemes(object sender, Chromium.Event.CfxOnRegisterCustomSchemesEventArgs e)
 {
     BrowserCore.RaiseOnRegisterCustomSchemes(e);
 }