CEF
farrellcn
这个作者很懒,什么都没留下…
展开
-
Google Chrome源码剖析【序】
【序】开源是口好东西,它让这个充斥着大量工业垃圾代码和教材玩具代码的行业,多了一些艺术气息和美的潜质。它使得每个人,无论你来自米国纽约还是中国铁岭,都有机会站在巨人的肩膀上,如果不能,至少也可以抱一把大腿。。。现在我就是来抱大腿的,这条粗腿隶属于 Chrome(开源项目名称其实是Chromium,本来Chrome这个名字就够晦涩了,没想到它的本名还更上一层楼…),Google那充满转载 2016-04-07 20:06:29 · 3403 阅读 · 1 评论 -
Chromium多进程架构简要介绍和学习计划
Chromium以多进程架构著称,它主要包含四类进程,分别是Browser进程、Render进程、GPU进程和Plugin进程。之所以要将Render进程、GPU进程和Plugin进程独立出来,是为了解决它们的不稳定性问题。也就是说,Render进程、GPU进程和Plugin进程由于不稳定而引发的Crash不会导致整个浏览器崩溃。本文就对Chromium的多进程架构进行简要介绍,以及制定学习计划。转载 2017-08-22 11:21:53 · 389 阅读 · 0 评论 -
CEF3研究(一)
一、基本概览C++ WrapperC++Wrapper(包装类)就是将C结构包装C++类。 这是C/C++API转换层通过translator tool自动产生的。进程 CEF3用多进程运行。 主(浏览)进程 ——处理窗口创建,绘制和网络访问,会产生相同的进程作为主应用程序,及处理主应用程序的逻辑。渲染进程——处理闪烁渲染和JavaScript转载 2017-08-17 16:55:35 · 717 阅读 · 0 评论 -
CEF研究(二)
应用程序结构每个CEF3应用程序都有一个相同的结构:提供一个入口函数以初始化CEF和运行每个子进程逻辑和CEF消息处理提供一个CefApp子类处理某个进程的回调提供一个CefClinet子类处理某个浏览进程的回调调用CefBrowserHost::CreateBrowser()函数创建浏览进程实例并使用CefLifeSpanHandler来管理浏览生命周期 2.转载 2017-08-17 17:04:59 · 597 阅读 · 1 评论 -
CEF3研究(三)
一、Off-Screen Rendering 脱屏绘制CEF的脱屏渲染并不创建源生的浏览器窗口,而是CEF提供主应用程序在无效区域和像素buffer里渲染,然后主应用程序通过鼠标、键盘和焦点事件通知CEF。脱屏渲染现在不支持图层混合加速图层混合加速。脱屏渲染要窗口浏览器一样接受相同的通知,包括生命周期通知等,为了使用脱屏渲染: 实现CefRenderHandler接口,所有方法转载 2017-08-17 17:07:07 · 985 阅读 · 0 评论 -
Google Chrome源码剖析【五】:插件模型
【五】 Chrome的插件模型1. NPAPI为了紧密的与各个开源浏览器团结起来,共同抗击IE的垄断,Chrome的插件,也遵循了NPAPI(Netscape Plugin Application Programming Interface)标准,支持这个标准的浏览器需要实现一组规定的API供插件调用,这组API形如NPN_XXX,比如NPN_GetURL,插件可以利用这些AP转载 2016-04-07 20:14:36 · 1439 阅读 · 0 评论 -
Google Chrome源码剖析【四】:UI绘制
【四】Chrome的UI绘制1. Chrome的窗口控件Chrome提供了自己的一个UI控件库,相关文档可以参见这里。用Chrome自己的话来说,我觉得市面上的七荤八素的图形控件库都不好用,于是自己倒腾倒腾实现了一套。。。广告虽如此说,不过,Chrome的图形控件结构,我还未发现有啥非常非常特别的地方。Chrome的窗口、按钮、菜单之类的控件,都直接或间接派生自View,这转载 2016-04-07 20:13:12 · 1926 阅读 · 0 评论 -
Google Chrome源码剖析【三】:进程模型
【三】 Chrome的进程模型1. 基本的进程结构Chrome是一个多进程的架构,不过所有的进程都会由老大,Browser进程来管理,走的是集中化管理的路子。在Browser进程中,有xxxProcessHost,每一个host,都对应着一个Process,比如RenderProcessHost对应着RenderProcess,PluginProcessHost对应着PluginP转载 2016-04-07 20:12:19 · 1342 阅读 · 1 评论 -
Google Chrome源码剖析【二】:进程通信
【二】Chrome的进程间通信1. Chrome进程通信的基本模式进程间通信,叫做IPC(Inter-Process Communication),在Chrome不多的文档中,有一篇就是介绍这个的,在这里。Chrome最主要有三类进程,一类是Browser主进程,我们一直尊称它老人家为老大;还有一类是各个Render进程,前面也提过了;另外还有一类一直没说过,是Plugin进程,每转载 2016-04-07 20:10:52 · 1777 阅读 · 0 评论 -
Google Chrome源码剖析【一】:多线程模型
【一】 Chrome的多线程模型0. Chrome的并发模型如果你仔细看了前面的图,对Chrome的线程和进程框架应该有了个基本的了解。Chrome有一个主进程,称为Browser进程,它是老大,管理 Chrome大部分的日常事务;其次,会有很多Renderer进程,它们圈地而治,各管理一组站点的显示和通信(Chrome在宣传中一直宣称一个 tab对应一个进程,其实是很不确切的转载 2016-04-07 20:09:24 · 1873 阅读 · 0 评论 -
CEF3研究之javascript集成(四
一、介绍谷歌浏览器和CEF使用V8JavaScript Engine作为内容的JavaScript实现。在浏览器中的每个窗口都有它自己在的JS上下文提供作用域和在窗口中安全的执行JS代码。CEF暴露大量JS功能集成在客户端应用程序。CEF3的Webkit和JS在单独的渲染进程中运行。在渲染进程的主线程中使用TID_RENDERER 作为唯一标识。所有V8的执行必须放置在这个线程中。转载 2017-08-17 17:34:20 · 328 阅读 · 0 评论