WebKit или Gecko - какой из них лучше встраивать в приложение на С++?

Какой из них вы бы выбрали и почему?
Я бы хотел услышать мнения людей, имеющих опыт, с внедрением механизма веб-браузера в приложении С++.
Я должен подчеркнуть, что мне нужны все возможности механизма веб-браузера за исключением рендеринга, т.е. HTTP-клиент, обработка файлов cookie, парсер HTTP в стиле DOM, механизм JavaScript. Как можно удалить либо WebKit, либо Gecko из кода рендеринга, чтобы избежать кодирования и накладных расходов во время выполнения?

Это продолжение Что встроенный браузер для проекта С++?

Ответ 1

Существует по крайней мере один проект, который имеет схожие требования, и он включает Gecko. Это Aptana Jaxer. Насколько я знаю, у них был хороший успех. Это не совсем ответит на ваш вопрос, но он показывает, что это, безусловно, можно сделать с Gecko, и есть доступный код GPL'd, который вы можете посмотреть, как это сделать (Jaxer - проект с открытым исходным кодом).

В прошлом также был аналогичный вопрос, заданный в прошлом. Я не согласен со всеми этими ответами, так как существует некоторая дезинформация, например, Firefox, являющийся диктатором того, что происходит в Гекко (это, безусловно, влияет, но не является решающим фактором).

Полное раскрытие: я работаю над кодовой базой Mozilla.

Ответ 2

Я предвзятый, но я бы сказал WebKit. Особенно благодаря использованию QtWebKit, должно быть легко иметь невизуальный веб-движок (со всеми колокольчиками и свистами, кроме покраски). И если кто-то действительно обеспокоен исключением всего кода, связанного с окраской, база кода достаточно модульная (особенно слои абстракции платформы), что это можно сделать в разумные сроки.

Ответ 3

Обратите внимание, что QtWebkit (и, как мне кажется, webkit в целом) потребует наличия активного сервера x, даже если вы не показываете графический интерфейс (требуется в ядре Qt, поскольку QWebPage использует QWidget). Это может быть недостаток дизайна в Qt-i havent, который был исследован далее в том, почему они могли это сделать.