CEF Xilium.CefGlue 防止浏览器闪退

CEF Xilium.CefGlue在打开网页的时候,经常会死掉闪退,频率有可能会频繁到开几个网页就死掉了,在这种情况下使用CEF来开发自己的浏览器应用程序基本上不可能。笔者经过自己的一些使用经历和在交流群群友的分享,找到了解决方法

 

在CEF 初始化的CefRuntime.Initialize方法传入的CefSettings中,加入如下属性:

settings.WindowlessRenderingEnabled = true;

该属性主要是针对用那种JSUI的控件的网站,如果不启用,浏览器遇到该类网站基本上都会闪退,完整代码如下:

 

 

            CefRuntime.Load();
            var settings = new CefSettings();
            .
            .
            .
            .
            .
            .
            //如果不开启好多用那种JSUI的控件的网站 什么的全死 
            settings.WindowlessRenderingEnabled = true;

            var args = new string[] { };
            var argv = args;
            if (CefRuntime.Platform != CefRuntimePlatform.Windows)
            {
                argv = new string[args.Length + 1];
                Array.Copy(args, 0, argv, 1, args.Length);
                argv[0] = "-";
            }

            var mainArgs = new CefMainArgs(argv);

            var exitCode = CefRuntime.ExecuteProcess(mainArgs, Global.app);
            Console.WriteLine("CefRuntime.ExecuteProcess() returns {0}", exitCode);
            if (exitCode != -1)
                return exitCode;

            foreach (var arg in args) { if (arg.StartsWith("--type=")) { return -2; } }
            CefRuntime.Initialize(mainArgs, settings, Global.app);

 

 

还有就是如果设置了CEF 的CachePath,那么最好是定期清理该目录,防止CachePath过大而影响浏览器的使用。

 

当然如果有针对浏览器的Cookie操作及处理,最好是设定浏览器保存Cookie文件的目录:browser.SetCookiePath(path);

 

转自:CEF Xilium.CefGlue 防止浏览器闪退

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值