在C#中使用WebKit时我到底嵌入了什么?

时间:2010-08-12 17:39:27

标签: c# google-chrome safari webkit embed

据我了解,Safari和Chrome都使用WebKit。有许多项目允许您嵌入WebKit,但我希望我真的想要将Chrome(用于Windows)嵌入到C#应用程序中,以便我的应用程序呈现与Windows上的Chrome相同。

因此,当我嵌入时,AwesomiumDotNet,渲染,CSS支持,Javascript引擎,字体渲染等是否适用于Chrome for Windows或底层WebKit引擎?

据推测,WebKit不处理字体和控件呈现之类的东西,或者Windows上的Chrome和Safari看起来完全相同,但它们却没有(Safari有模糊的文字发生,除其他差异外)。

WebKit负责布局和计算样式,而构建在WebKit之上的浏览器是否提供实际渲染?或者更多的是,苹果和谷歌使用的项目在不久前分叉了,这就是为什么它们不同?

2 个答案:

答案 0 :(得分:7)

WebKit确实处理了所有这些事情,实际上它也有自己的JS引擎(JavaScriptCore)。它实际上也会实现控件等,但方式与您预期的不同。 Safari和Chrome确实看起来不同,但这是因为它们都有不同的WebKit实现。 AwesomiumDotNet提供了自己的控件渲染实现(就像Chrome和Safari一样)。

出于所有意图和目的,当您嵌入AwesomiumDotNet时,您将嵌入一个完整的预构建浏览器控件。但是,WebKit本身不一定需要使用完整浏览器的每个组件。例如,Chrome实现了自己的JavaScript引擎(V8)。

希望这有帮助!

答案 1 :(得分:-2)

Chrome无法嵌入C#应用程序。您可以查看获取Chromium源并将其转换为COM或ActiveX对象,但这可能太麻烦了。相反,您可以尝试嵌入WebBrowser对象,看看是否可以让Chrome Frame在其中工作。

更新:我想也许那就是Awesomium is...。不确定它是否包装Webkit或包装Chromium。