コード例 #1
0
ファイル: RemoteService.cs プロジェクト: xmcy0011/NanUI
        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;
        }
コード例 #2
0
ファイル: RemoteService.cs プロジェクト: xmcy0011/NanUI
        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;
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        /// <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;
        }
コード例 #5
0
 internal OnCSBeforeCfxInitializeEventArgs(CfxSettings settings, CfxBrowserProcessHandler processHandler)
 {
     Settings       = settings;
     ProcessHandler = processHandler;
 }
コード例 #6
0
 /// <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));
 }
コード例 #7
0
        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;
        }
コード例 #8
0
 static void ChromiumWebBrowser_OnBeforeCfxInitialize(CfxSettings settings, CfxBrowserProcessHandler processHandler, out CfxOnBeforeCommandLineProcessingEventHandler onBeforeCommandLineProcessingEventHandler)
 {
     throw new NotImplementedException();
 }