protected override void ExecuteInTargetProcess(RemoteConnection connection)
        {
            var self = (CfrRenderProcessHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                return;
            }
            var e = new CfrOnBrowserCreatedEventArgs(this);

            self.m_OnBrowserCreated?.Invoke(self, e);
            e.m_isInvalid   = true;
            browser_release = e.m_browser_wrapped == null? 1 : 0;
        }
        protected override void RemoteProcedure()
        {
            var self = (CfrRenderProcessHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                return;
            }
            var e = new CfrOnBrowserCreatedEventArgs(this);

            e.connection = CfxRemoteCallContext.CurrentContext.connection;
            self.m_OnBrowserCreated?.Invoke(self, e);
            e.connection    = null;
            browser_release = e.m_browser_wrapped == null? 1 : 0;
        }
示例#3
0
        void RenderProcessHandler_OnBrowserCreated(object sender, CfrOnBrowserCreatedEventArgs e)
        {
            var id = e.Browser.Identifier;
            var wb = HtmlUILauncher.GetBrowser(id);

            if (wb != null)
            {
                var rp = wb.RemoteProcess;
                if (rp != null && rp != this.remoteProcess)
                {
                    // A new process has been created for the browser.
                    // The old process is still alive, but probably it gets
                    // killed soon after this callback returns.
                    // So we suspend all callbacks from the old process.
                    // If there are currently executing callbacks,
                    // this call will block until they are finished.
                    // When this call returns, it should be safe to
                    // continue execution and let the old process die.
                    CfxRemoteCallbackManager.SuspendCallbacks(rp.RemoteProcessId);
                }

                wb.SetRemoteBrowser(e.Browser, remoteProcess);
            }
        }
 private void RenderProcessHandler_OnBrowserCreated(object sender, CfrOnBrowserCreatedEventArgs e) 
 {
     OnNewBrowser?.Invoke(e);
 }
示例#5
0
 private void RenderProcessHandler_OnBrowserCreated(object sender, CfrOnBrowserCreatedEventArgs e)
 {
     OnNewBrowser?.Invoke(e);
 }