cef
文章平均质量分 68
CAir2
这个作者很懒,什么都没留下…
展开
-
cef 问题集锦
SendMouseClickEvent判断点击次数是否大于3,如果大于3则默认为3。检查语言区域设置是否正确(本例设置为中文)实现(cef 109 demo基础改)不使用opengl,改用原始方式。原创 2023-12-26 16:20:12 · 824 阅读 · 0 评论 -
CEF 关闭流程优化
CEF的详细关闭流程参考:https://blog.csdn.net/louis_815/article/details/76269057通过上述博客我们首先需要明白WM_CLOSE,会在什么情况下触发:CefBrowserHost::CloseBrowser(false)用户主动关闭窗口,发送WM_CLOSE那么如果一个wnd拥有多个浏览器窗口(eg:多标签浏览器)。那么每关闭一次浏...原创 2019-07-24 18:40:35 · 3251 阅读 · 1 评论 -
cef 关闭child窗口导致整个进程退出
现象1:一个窗口作为多个CefBrowser的父窗口,尝试关闭其中某一个Browser。结果整个窗口退出(或进程退出)。void CBrowserApp::NewTabPage(std::string url){ CefWindowInfo wnd_info; wnd_info.SetAsChild(m_parent_hwnd, rtClient); CefBrowserSetting...原创 2019-06-06 17:38:03 · 2193 阅读 · 3 评论 -
CefRegisterExtension
CefRegisterExtension 注册新的V8扩展关联指定的js。native 仅限制在Function区域使用,只能在Render进程主线程使用。function 部分参数顺序说明"(function() {" " MyMath.add = function(num1, num2) {"//参数顺序为外部js调用顺序 " native function add();"...原创 2019-06-12 19:44:29 · 2321 阅读 · 0 评论 -
CEF:注册JS回调
前面我们学习了C++和JS的基本交互。例如C++调用js。browser->GetMainFrame()->ExecuteJavaScript(js, L"", 0);但是在实际应用过程中可能我们事先并不知道函数原型,而是使用的函数指针来回调结果。例如:do_event(call_back,parama1,parama2,....paramaN)此时需要使用CEF::Exe...原创 2019-06-12 17:42:33 · 3469 阅读 · 2 评论 -
CEF多标签浏览器
由于工程仅仅提供学习用,怎么简单怎么做。标签关闭通过菜单关闭。通过前面几篇文章学习我们已经可以粗略的实现一个简单的浏览器。如果需要实现多标签浏览器我们需要解决如下几个问题:(Note:Win32的UI线程和Cef的UI线程不是同一个线程,所以在操作的时候需要注意多线程的问题)如何让新打开的网页在标签页下显示?如何在切换标签页的时候切换网页?如何通过关闭标签页的时候关闭网页?如何通过关键字...原创 2019-01-08 16:28:44 · 7029 阅读 · 13 评论 -
CEF融入MFC
前面我们分析了CefSample的代码,那么现在我们将基于MFC的Dialog做一个简单的CefDemo模型。CefSample使用的是Cef自己的消息环CefRunMessageLoop。但是在使用MFC的时候,MFC有自己的消息环,所以我们不能再使用CefRunMessageLoop,所以我们需要在MFC的消息环里面处理Cef的消息,代码如下,重写虚函数PumpMessage:BOOL C...原创 2018-12-17 16:30:39 · 1926 阅读 · 0 评论 -
CEF 进程间消息传递
CEF Render进程和Browser进程之间的通信,往往使用CefBrowser::SendProcessMessage()方法。由于CefBrowser 与CefFrame对象同时存在于browser与render进程中,所以不管在渲染(Render)进程还是浏览(Browser)进程中,都能调用到SendProcessMessage()方法。SendProcessMessageSend...原创 2018-12-27 16:46:23 · 4123 阅读 · 0 评论 -
CEF调试Render进程
首先我们按照CefSample的Demo去模仿自己的工程,然后在通过SimpleApp继承了CefRenderProcessHandler,并且重写了CefRenderProcessHandler的部分函数,结果发现CefSample关于Render进程的代码都没有调用。额。。。怎么回事呢?哦,对了Cef是多进程的,所以我们调试Cef Browser 进程的时候当然不会调用关于Render进程的代...原创 2018-12-27 14:45:43 · 7177 阅读 · 0 评论 -
CEF:C++和JS交互
CEF 中的JavaScriptCEF 利用 V8 JS 引擎来实现 JS。浏览器中的每一个 frame 都有自己的 JS 上下文,JS 只能在该上下文中执行。JS 只能在渲染进程中的 TID_RENDERER 线程中执行。有关 JS 回调的接口都包含在 CefRenderProcessHandler 中,因此我们要实现这个接口来对 JS 进行扩展。这个接口一般由 CefApp 实现。...原创 2018-12-27 14:10:03 · 6892 阅读 · 1 评论 -
cef源码编译
cef3 编译原创 2018-08-23 14:36:33 · 5411 阅读 · 0 评论 -
cef1和cef3 区别
声明一下,这是小白初步了解cef。当时看见cef1和cef3的疑惑。原文链接早在content API出现之前,CEF便已出现,其目的是提供嵌入式的框架,可以让渲染网页的功能方便地嵌入到应用程序之中。CEF依赖于chromium浏览器,所以chromium对HTML5的支持和性能上的优势,都得以继续在CEF中体现出来。但是,根据实际测试的结果来看,情况可能并非如此。首先,其对GPU硬件加速的支...转载 2018-08-23 10:42:42 · 2848 阅读 · 0 评论 -
CefInitialize崩溃 && Cef白屏
新建一个MFC Dialog工程,然后仿照CefSimple模仿实现自己的一个基于MFC窗口的Demo(具体代码稍后上),注意我仅仅只配置了所需要依赖的lib,并没有把CefSample的配置一起Copy,所以才导致后面的白屏,浪费了我一天时间。坑一:CefInitialize崩溃也许这个坑很多网友都遇到过,所以寻找度娘的时候问题很快就解决了,就是exe运行环境缺少必须要的资源包(不仅仅dll...原创 2018-12-14 17:03:57 · 7631 阅读 · 5 评论 -
cefsimple 源码剖析
cefsimple源码分析从前面文章我们已经知道怎么编译属于自己的CEF工程了,下面我们就拿最基础的工程cefsimple代码分析,做一个简短的Cef入门学习。首先我们从函数入口开始跟踪学习Cef运行流程(至于Cef多进程调试我们放在后面文章研究),首先我们查看cefsimple_win.cc代码: UNREFERENCED_PARAMETER(hPrevInstance); UNREFE...原创 2018-12-12 15:19:26 · 2558 阅读 · 2 评论 -
CEF CloseBrowser
此处针对的是一个CefClient管理多个CefBrowser的情景。情景实现步骤:进入百度首页=》新闻=》随便点击一个新闻(此时会创建一个新CefBrowser,cef默认是popup,我们修改为WS_CHILD,实现多标签页,具体实现下一章介绍)cefsample的实例中我们知道了cefclient的生命周期需要自己管理,并且在退出的时候调用CefBrowserHost::CloseBro...原创 2018-12-20 19:37:01 · 2531 阅读 · 0 评论