什么是嵌入应用程序的最佳HTML渲染引擎?

18

目前,我们的应用程序使用Trident Win32组件,但出于几个原因,我们希望摆脱它,其中最重要的是我们希望跨平台。

我们正在考虑WebKitGecko,但在做出决定之前,我想得到一些反馈意见。以下是一些最重要的要求:

  1. 它应该相对快速,占用空间较小。理想情况下,我们应该能够轻松地削减掉不需要的部分。

  2. 良好的文档非常重要。我不预计需要做任何太不寻常的事情,但你永远不知道。

  3. 我们正在使用C++,如果可能的话,希望使用设计良好的面向对象架构。

  4. 必须是跨平台的,长期来看,良好的性能将会有所帮助(我们可能会将其移植到移动平台)。

在做出决定之前,我需要考虑什么因素?有人以前使用过WebKit或Gecko吗?如果有,是否有任何有用的文章或教程?

更新:

感谢大家的回复。我们最终选择了Qt 4.5,其中包括WebKit。到目前为止,我们非常满意它,事实上,我认为Qt可能是我使用过的最好的UI框架;使用本地Win32 API和这个之间的差异是惊人的。它也很容易学习,我们唯一的主要问题是适应信号/槽范例。


你们是开源的吗?如果不是,那可能会限制你们可以使用的内容。(我认为WebKit是LGPL许可证?如果你们是闭源的话,这些限制并不太严格) - Aardvark
我们还没有达到做出那个决定的阶段,但这当然是一种可能性。 - conmulligan
这个问题应该与“C++项目中使用哪个嵌入式浏览器?”(https://dev59.com/9XRA5IYBdhLWcg3wxA1N)合并或链接。尽管那个问题是关于嵌入Web浏览器引擎但渲染被剥离的。 - Piotr Dobrogost
6个回答

9
一些历史背景可能有助于您的决策。当苹果公司考虑使用哪种引擎来制作Safari浏览器时,他们曾考虑过Gecko,但最终选择了KHTML,并将其分支并称为WebKit。他们这样做的原因是Gecko仍然保留着大量来自Netscape的遗留垃圾,并且更加复杂。
KHTML/WebKit是较新的引擎,因此没有那么多遗留垃圾。它也更清洁、更快速、文档更好。
Firefox 3 的目标之一是清理和简化代码库。据我所知,他们确实这样做了,但我不知道它与当前版本的WebKit相比如何。而对于Google而言,这显然不够,因此他们开发了Chrome浏览器,并持有Firefox的重要股份。
更多详情请参见这里

1
Firefox 3于2008年6月17日发布,而Chrome在那之前已经开发了2年时间,如果我没记错的话。我认为可以肯定的是,Mozilla为Firefox 3所做的重组对Google决定采用Webkit没有任何影响。 - Kit Sunde

5

虽然我有偏见,但如果您不介意使用(LGPL-ed)Qt,那么考虑使用QtWebKit如何?它很容易嵌入,跨平台当然,有一个漂亮的Web浏览器演示,还有其他相关示例


嗨,Ariya,我们最终选择了Qt;你们正在做一些惊人的工作。请看我上面的更新。 - conmulligan

4
这取决于您的需求。即使只想显示普通的HTML,Webkit也可能过度。在我的一些应用程序中,我使用wxHTML。它是来自wxWidgets库的组件(不确定是否可以在没有wx的情况下使用它)。它很轻巧,仅支持基本的HTML内容(某些CSS支持可能在下一个版本中可用),并且具有非常好的wxHtmlEasyPrinting控件,可提供良好的打印预览并打印效果很好。至于跨平台性,wxWidgets适用于Windows、Linux、Mac和其他一些系统,因此肯定符合您的要求。
我不建议选择Gecko。虽然可以集成它,但比KHTML/Webkit更难做到这一点,因为Gecko并不是为嵌入式设计而构建的。

3

我认为我会建议使用Safari/Chrome的WebKit引擎,该引擎源于Konqueror渲染引擎的KHTML。


2

尽量选择Webkit,因为它被许多不同的浏览器所使用(如Konqueror、Safari和Google Chrome)。这使得Webkit更加通用,更易于适应其他需求。

Gecko的发展与Firefox密切相关。许多对Gecko的修改都是由于Firefox的规定。例如,Firefox 3决定出于安全目的阻止所有自签名证书。实现已经添加到了Gecko引擎中,这意味着任何决定嵌入Gecko的应用程序都会受到此安全限制。

如果您可以保持使用Webkit,它主要是用于HTML页面的渲染引擎。它旨在用于不同的Web浏览器之间。而Gecko主要是单个浏览器的渲染引擎,只偶然提供了嵌入式API。


我还要赶快补充一点,Adobe AIR使用的是WebKit。 - CodeMouse92

0

我的理解是Webkit相当不错,而且比Gecko更小。虽然最近Gecko进行了一次改进,使其与Webkit相当可比。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接