Что именно я встраиваю при использовании WebKit в C #? - PullRequest
6 голосов
/ 12 августа 2010

Насколько я понимаю, и Safari, и Chrome используют WebKit.Есть много проектов, которые позволяют вам встраивать WebKit, но на самом деле я хочу встроить Chrome (для Windows) в приложение C #, чтобы мое приложение отображало идентично Chrome в Windows.

Так что, когда я встраиваю,скажем, AwesomiumDotNet , будет ли рендеринг, поддержка CSS, движок Javascript, рендеринг шрифтов и т. д. Chrome для Windows или базовый движок WebKit?

Предположительно, WebKit необрабатывать такие вещи, как рендеринг шрифтов и элементов управления, или Chrome и Safari в Windows выглядели бы одинаково, и все же они этого не делают (среди прочих различий в Safari есть нечеткий текст).

Так что WebKit отвечает замакет и вычисленные стили, в то время как браузер, построенный поверх WebKit, обеспечивает фактический рендеринг?Или более того, что проекты, используемые Apple и Google, развились некоторое время назад, и поэтому они разные?

Ответы [ 2 ]

7 голосов
/ 12 августа 2010

WebKit обрабатывает все эти вещи, и на самом деле имеет свой собственный движок JS (JavaScriptCore). Фактически, он также отображает элементы управления и тому подобное, хотя и не так, как вы могли бы ожидать. Safari и Chrome действительно выглядят по-разному, но это потому, что они оба имеют разные реализации WebKit. AwesomiumDotNet предоставляет собственную реализацию (как и Chrome и Safari) управления рендерингом.

Для всех целей и задач, когда вы встраиваете AwesomiumDotNet, вы встраиваете полностью готовый элемент управления браузером. Однако сам по себе WebKit не обязательно должен использовать каждый из компонентов полного браузера. Например, в Chrome реализован собственный движок JavaScript (V8).

Надеюсь, это поможет!

0 голосов
/ 12 августа 2010

Chrome не может быть встроен в приложение C #. Вы можете взглянуть на взятие источника Chromium и преобразование его в объект COM или ActiveX, но это, вероятно, слишком сложная задача. Вместо этого вы можете попробовать встроить объект WebBrowser и посмотреть, сможете ли вы заставить Chrome Frame работать в нем.

Обновление: я думаю, может быть, это то, что Awesomium ... . Не уверен, что он обернет Webkit или Chromium.

...