cef Overview

原文连接:https://bitbucket.org/chromiumembedded/cef

Chromium Embedded Framework / cef

概述

Chromium Embedded Frameword(CEF)是一个在其它应用程序中嵌入基于chromium浏览器的简易框架。

相关连接

工程简介 - https://bitbucket.org/chromiumembedded/cef
教程 - https://bitbucket.org/chromiumembedded/cef/wiki/Tutorial
一般用法 - https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage
主分支编译快速入门 - https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart
分支编译 - https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
论坛 - http://www.magpcss.org/ceforum/
CEF1 C++接口文档 - http://magpcss.org/ceforum/apidocs/
CEF3 C++接口文档 - http://magpcss.org/ceforum/apidocs3/
下载 - http://opensource.spotify.com/cefbuilds/index.html
捐款 - http://www.magpcss.org/ceforum/donate.php

介绍

CEF是一个BSD协议授权的开源项目,是由Marshall Greenblatt在2008基于Google Chromiu项目创建的。不同的是,chromium项目主要集中于Google Chrome浏览器的开发,而CEF的重点是促进在第三方应用程序中集成嵌入式浏览器。CEF提供质量稳定的API,会跟踪指定的Chromium的发行版来发布分支,以及二进制发行包,以此来将用户与底层复杂的Chromium&Blink代码隔离。CEF中的大多数特性都有默认的实现,他们提供了丰富的功能,基本很少需要或不需要将用户的需求集成其中。目前,在世界各地的企业中将CEF嵌入到他们的产品中的实例已经超过了1亿。在 CEF Wikipedia page中有一些列表会对使用CEF很有用。CEF的用例包括:

  • 在本地应用程序中嵌入一个支持HTML5的浏览器控件。
  • 创建一个用户界面及交互采用web技术的轻量级应用程序。
  • 在应用程序中以自定义的绘制框架利用离屏技术来渲染网页。
  • 对一个已经存在的网站和应用程序的自动化测试。

CEF支持许多不同的编程语言和操作系统,并且可以很容易的集成到新开发的或已成型的产品中。他的设计完全考虑了性能和易用性。他的基础框架中包含了C和C++编程接口,这些接口是通过本地库文件的方式提供,这些库文件的目的就是将应用程序与Chromium&Blink的具体实现隔离开来。在浏览器和应用程序之间,他提供的紧密集成包括:支持自定义插件,协议,JavaScript对象和JavaScript扩展。利用同Google Chrome浏览器相同的性能和HTML5技术,应用程序可以任意地控制资源的加载,导航,上下文菜单,打印等等。

已经有很多的个人和组织贡献他们的时间和资源来支持CEF的开发,但还是欢迎更多的人能加入到这个团体中来。这包括支持CEF核心项目以及用新增的编程语言和框架来集成CEF的外部项目(见“外部项目”章节)。如果你有兴趣捐赠时间来帮助CEF的开发,请参考下面的“帮助”章节。如果你有兴趣捐款来支持CEF的开发和对基础构建作出的努力,请访问CEF Donations页面。

开始

CEF开发的新用户最好先阅读Wiki页的Tutorial,好对CEF的使用有一个整体概念,然后再前往Wiki页的GeneralUsage,去获取更多深入地讨论,体系以及使用问题。完整的API文档在这里。CEF支持和相关的探讨在CEF Forum

发行包

二进制发行包包含了编译一个基于CEF的应用程序所需要的所有的文件,你可以前往 Downloads页查看。这些发行包都是独立的,你不需要去下载CEF或者Chromium的源代码。调试发行包中libcef的符号文件也可以在上面的链接中下载。

源代码

CEF项目是Chromium项目的延伸。CEF跟踪Chromium的分支来维持开发和发行分支。CEF的源代码可以手动下载,编译,打包,也可以使用自动化工具。访问Wiki页中的BranchesAndBuilding获取更多信息。

外部项目

CEF的基础框架包含了对C和C++编程语言的支持。非常感谢致力于外部项目维护人员的辛勤工作,才得以用许多其它编程语言和框架来来集成CEF。这些外部项目不是由CEF官方维护,所以如果你有疑问或者相关问题,请联系各个项目的维护人员。

如果你是某个项目的维护者,并且你的项目没有在上面的列表中,如果你想在这里罗列出来请去CEF Forum发布或直接联系Marshall 。

帮助

CEF仍然是一个进行中的任务,下面是一些你可以提供帮助的途径:

  • CEF issue tracker中对你认为很重要的问题进行投票,这将有助于开发优化。
  • 报告你发现的任何漏洞和你对很重要的特性需求。在你创建一个新的问题时,请先搜索以确保该问题是否已经存在。请使用CEF Forum来发布问题,不要使用issue tracker。每个CEF问题应该包含以下信息:
    • CEF的版次或者发行包的版本。
    • 操作系统的信息和编译器的版本。
    • 如果发布的问题是一个bug,请提供详细的重现信息。
    • 如果发布的问题是一个特性需求,请描述为什么这个特性是有益的。
  • 为新的或现有的功能编写单元测试。
  • Pull requests和patches 是受欢迎的。在CEF issue tracker中查看开放问题或者在源码中搜索TODO(cef)来发现灵感。
  • 如果你想贡献修改的源代码到CEF,请遵循以下原则:
  • 为每一个明显的bug,特性,改变创建或找到一个合适议题。
  • 提交一个pull request或将你的修改创建一个patch,并把他附加到CEF问题中,这些修改应该:
    • 不要往当前的CEF主分支中提交,除非是明确地修复了发行分支中bug。
    • 遵循CEF 源代码中编写风格。了解CEF的编程风格请前往Chromium coding style
    • 适当的包含对新增或修改功能的单元测试。
    • 不要做没必要的或不相关的修改。

2017.07.01

猜你喜欢

转载自blog.csdn.net/Vincent95/article/details/74087113
CEF