共计 1096 个字符,预计需要花费 3 分钟才能阅读完成。
Chromium 和 cef 的区别
为何市场上的少数浏览器基于 chromium 开发而不是 cef。
1 Chromium 和 cef 的区别和分割
- chromium 是谷歌主导的浏览器开源我的项目,基于 chromium 能够方便快捷定制一款浏览器,国内外少数浏览器也基于此开发。
- Cef 是 chromium 我的项目的一个分支,抽离 webkite 和内核层,提供 content 层上的 API 接口,把简单的底层接口进行封装,更加敌对的给用户应用,少数用于客户端的开发,通过内置页面实现疾速开发客户端界面的成果。以后钉钉、企业微信、VSCode 等少数客户端都应用此框架开发。
- 他们都能够渲染网页,都是开源框架,chromium 是浏览器的开源利用,针对浏览器的罕用性能做了大量工作,cef 抽离渲染局部,利用在客户端的内嵌网页场景,阉割了局部性能,不便用户学习和应用。
2 浏览器是否基于 cef 的开发
2.1 如果能有哪些劣势,有哪些问题
如果 cef 能满足日常的网页浏览,不便用户应用,基于此假如进行如下论证。
1、能够更加疾速的上手浏览器开发,起因:cef 接口隔离比拟敌对,提供大量 API 即可实现满足渲染一个页面
2、疾速实现内核降级,起因:隔离比拟好,cef 自身会把底层内核隔离进去一套接口,把下层利用给阉割掉。
3 问题难点
如果要实现一个蕴含罕用性能的浏览器,须要先思考如何解决如下问题。
因为 cef 会阉割掉大多数应用层性能如:UI、Chrome、Content 等,导致以后浏览器罕用性能在 cef 中须要本人实现。
3.1 如下技术点 cef 以后不反对,须要思考如何实现
1、如何实现 UI 框架,反对各类 UI 展现、右键菜单、横幅、气泡,此 UI 框架波及最广,而且要求比拟对性能和扩展性、开发敌对等都有较高要求。
2、如何反对地址栏,实现地址栏各个性能,如联想提醒、历史记录联想、搜寻文字联想、珍藏联想、地址栏平安标识等等
3、如何反对珍藏,珍藏历史、珍藏搜寻、珍藏同步、珍藏本地保留和珍藏界面展现
4、如何反对开发这模式,比方:F12 等各类 HTML5 的调试,此性能在 cef 能够通过开接口实现 F12,cef 自身反对一部分开发这模式,默认禁掉,须要从新捕捉音讯
5、如何反对各类内置页,页面的 JS 扩大接口、主页设置、各类选项设置页面,这个页面比拟多几十个,是 chrome 浏览器性能入口
6、如何反对插件性能,插件拖进、卸载和运行等
7、如何标签的治理,标签拖拽如:标签拖出新开一个浏览器,拖进能够合并 2 个浏览器窗口等
8、如何实现浏览器的同步机制
9、如何实现浏览器翻译性能
10、如何实现下载模块、多窗口模块、复原列表
11、如何实现鼠标手势、Favicon 模块
12、UA 性能、新标签页