2010-08-12 15 views
6

Según tengo entendido, tanto Safari como Chrome usan WebKit. Hay muchos proyectos que le permiten incrustar WebKit, pero quiero que realmente quiera incrustar Chrome (para Windows) en una aplicación C# para que mi aplicación rinda de manera idéntica a Chrome en Windows.¿Qué estoy incrustando exactamente cuando uso WebKit en C#?

Así que cuando inserto, digamos, AwesomiumDotNet, ¿el renderizado, el soporte de CSS, el motor de Javascript, el renderizado de fuentes, etc. será el de Chrome para Windows, o del motor WebKit subyacente?

Presumiblemente, WebKit no maneja elementos como la fuente y el control de representación o Chrome y Safari en Windows se verían idénticos, y aún así no (Safari tiene ese texto borroso, entre otras cosas).

¿Es WebKit el responsable del diseño y los estilos calculados, mientras que el navegador creado sobre WebKit proporciona la representación real? ¿O es más que los proyectos utilizados por Apple y Google se bifurcaron hace un tiempo, y es por eso que son diferentes?

Respuesta

7

WebKit maneja todas esas cosas, y de hecho tiene su propio motor JS también (JavaScriptCore). También, de hecho, renderiza los controles y demás, aunque de una manera diferente a la esperada. De hecho, Safari y Chrome se ven diferentes, pero eso se debe a que ambos tienen implementaciones diferentes de WebKit. AwesomiumDotNet proporciona su propia implementación (al igual que Chrome y Safari) de la representación de control.

Para todos los efectos, cuando incorpora AwesomiumDotNet, está incorporando un control de navegador completo y preconstruido. Sin embargo, WebKit no necesariamente necesita usar cada uno de los componentes del navegador completo. Por ejemplo, Chrome implementa su propio motor de JavaScript (V8).

Espero que esto ayude!

+1

Además, ambos navegadores probablemente utilicen sus propias implementaciones de botones/campos de texto/etc., y ambos pueden cambiar exactamente la forma en que ocurre el procesamiento de texto (por ejemplo, utilizando el motor de texto Unicode de la plataforma o incorporando algo mejor) –

-2

Chrome no tiene la capacidad de ser incrustado en una aplicación C#. Podría considerar tomar la fuente Chromium y convertirla en un objeto COM o ActiveX, pero eso probablemente sea una molestia. En su lugar, puede tratar de insertar el objeto WebBrowser y ver si puede obtener Chrome Frame para trabajar en él.

Actualización: Creo que eso es lo que Awesomium is.... Sin embargo, no estoy seguro si envuelve Webkit o si envuelve a Chromium.

+0

https: // github .com/chillitom/CefSharp – chillitom

+0

La respuesta parece ser correcta. CEF es una construcción separada del proyecto Chromium. No permite usar Chrome ya instalado en el sistema (y, por supuesto, no se actualizará con udating de Chrome). – Yahor

Cuestiones relacionadas