Первый предварительный выпуск Qt WebEngine, переведённый на браузерный движок Blink

Компания Digia объявила о начале тестирования первого предварительного выпуска Qt WebEngine, компонента для использования браузерного движка в Qt-приложениях, идущего на смену Qt WebKit. Qt WebEngine отличается переходом на кодовую базу проекта Blink, в рамках которого компания Google развивает форк движка WebKit. Qt WebEngine войдёт в состав Qt 5.3, выпуск которого намечен на 29 апреля 2014 года.

Главное отличие Blink от WebKit заключается в использовании другой многопроцессной архитектуры, изначально применяемой в проектах Chrome/Chromium и подразумевающей наличие отдельного диспетчера ресурсов для взаимодействия с другими модулями. Кроме того, в Blink ведётся большая работа по упрощению движка и очищению его от лишнего груза, такого как поддержка устаревших платформ, ограничивающих возможности по дальнейшему развитию и оптимизации.

Для использования преимуществ многопроцессной модели Blink, подразумевающей выполнение движка в отдельном изолированном процессе, разработчики Qt подготовили новый вариант API, который отличается от API Qt WebKit иными методами встраивания QObject и организацией взаимодействия c web-страницей в асинхронном режиме. Новый API в большинстве случаев повторяет старый API, например, обеспечена совместимость элемента Qt Quick WebView, но требует внесения изменений в приложения при встраивании QObject или при желании использовать специфичные возможности QWebElement API.

Первый тестовый выпуск Qt WebEngine нацелен главным образом на проверку интеграции с Qt и Qt Quick. Для Qt Quick и виджетов предоставлен предварительный API, который пока не является стабильным и ещё будет дополняться. В случае Qt Quick, API непосредственно интегрируется с Qt Scene Graph и поэтому обеспечивает высокую производительность для активного web-контента (например, WebGL). Widgets API главным образом сфокусирован на упрощении портирования с QtWebKit. Доступный для загрузки (git) модуль Qt WebEngine поддерживает только Linux и Mac OS X, но в будущем также будет адаптирован для Windows и встраиваемых платформ на базе Android и Linux.

Для разработчиков приложений планируется подготовить средства для упрощения миграции программ с Qt WebKit на Qt WebEngine. Для знакомства с Qt WebEngine в архив включено несколько рабочих примеров: QuickNanoBrowser — простой web-браузер, поддерживающий вкладки, и оптимально подходящий для оценки высокой производительности отрисовки WebGL-приложений, которой можно добиться за счёт интеграции с Qt Scene Graph; Browser — вариант оригинального демонстрационного браузера, показывающий технику портирвоания с QtWebKitWidgets на Qt WebEngine; FancyBrowser — демонстрирует средства взаимодействия с web-контентом, используя jQuery и асинхронный метод runJavaScript.

Основные причины перехода с WebKit на Blink и технологии Chromium:

  • В разработке Chromium большое внимание уделяется кросс-платформенности, поддерживаются все основные настольные платформы и Android. В WebKit поддержка современных платформ отстаёт от Chromium;
  • Многие возможности, требующие дополнительной доработки при использовании WebKit, доступны из коробки в Chromium. Например, Chromium упрощает использование наработок по адаптации продукта для разных платформ и операционных систем, без дополнительных Qt-специфичных надстроек работают мультимедийные возможности и WebRTC.
  • При использовании Chromium упрощается интеграция с операционной системой, что позволяет сосредоточить внимание на развитии API и интеграции с Qt;
  • Разработка Chromium ведётся под очень серъёзным контролем в соответствии с высокими требованиями к качеству, что упрощает тестирование производных продуктов;
  • Chromium позволяет обеспечить более качественную и высокопроизводительную интеграцию как с виджетами, так и с элементами сцены Qt Quick;
  • Chromium является одним из наиболее динамично развивающихся проектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.