Компания Digia объявила о начале тестирования первого предварительного выпуска Qt WebEngine, идущего на смену Qt WebKit компонента для использования браузерного движка в Qt-приложениях. Qt WebEngine отличается переходом на кодовую базу проекта Blink, в рамках которого компания Google развивает форк движка WebKit. Доступный для загрузки (git) модуль Qt WebEngine поддерживает только Linux и Mac OS X, но в будущем также будет адаптирован для Windows и встраиваемых платформ на базе Linux. Первый выпуск Qt WebEngine войдёт в состав Qt 5.3, выпуск которого намечен на 29 апреля 2014 года.
Главное отличие Blink от WebKit заключается в использовании другой многопроцессной архитектуры, изначально применяемой в проектах Chrome/Chromium и подразумевающей наличие отдельного диспетчера ресурсов для взаимодействия с другими модулями. Кроме того, в Blink ведётся большая работа по упрощению движка и очищению его от лишнего груза, такого как поддержка устаревших платформ, ограничивающих возможности по дальнейшему развитию и оптимизации.
Для использования преимуществ многопроцессной модели Blink, подразумевающей выполнение движка в отдельном изолированном процессе, разработчики Qt подготовили новый API QWebElement, который отличается от API Qt WebKit иными методами встраивания QObject и организацией взаимодействия между QObject и web-страницей в асинхронном режиме. Новый API в большинстве случаев повторяет старый API, например, обеспечена совместимость элемента Qt Quick WebView, но требует внесения изменений в приложения при встраивании QObject или при желании использовать специфичные возможности QWebElement API. Для разработчиков приложений развиваются средства для бесшовной миграции программ с Qt WebKit на Qt WebEngine, что позволит максимально упростить процесс перехода на новый API.
Основные причины перехода с WebKit на Blink и технологии Chromium:
- В разработке Chromium большое внимание уделяется кросс-платформенности, поддерживаются все основные настольные платформы и Android. В WebKit поддержка современных платформ отстаёт от Chromium;
- Многие возможности, требующие дополнительной доработки при использовании WebKit, доступны из коробки в Chromium. Например, Chromium упрощает использование наработок по адаптации продукта для разных платформ и операционных систем, без дополнительных Qt-специфичных надстроек работают мультимедийные возможности и WebRTC.
- При использовании Chromium упрощается интеграция с операционной системой, что позволяет сосредоточить внимание на развитии API и интеграции с Qt;
- Разработка Chromium ведётся под очень серъёзным контролем в соответствии с высокими требованиями к качеству, что упрощает тестирование производных продуктов;
- Chromium позволяет обеспечить более качественную и высокопроизводительную интеграцию как с виджетами, так и с элементами сцены Qt Quick;
- Chromium является одним из наиболее динамично развивающихся проектов.