Qt переходит с WebKit на браузерный движок Blink и технологии Chromium
12 сентября 2013 года
Ларс Нол (Lars Knoll), создатель движка KHTML, руководитель проекта Qt Project и директор по развитию фреймворка Qt в компании Digia, представил Qt WebEngine, новый компонент для использования браузерного движка в Qt-приложениях. Qt WebEngine идёт на смену Qt WebKit и отличается переходом на кодовую базу проекта Blink, в рамках которого компания Google развивает форк движка WebKit.
Примечательно, что до основания форка проект Qt занимал третье место по вкладу в развитие WebKit (на первом месте был Google, на втором Apple). Присоединение Qt к развитию Blink, вслед за Adobe и Opera, меняет расстановку сил - существенное развитие WebKit остаётся только за компанией Apple. Отмечается, что решение о миграции Qt на Blink принято после досконального изучения особенностей обоих движков и учёта того, что WebKit изначально позиционируется как универсальный продукт, а Blink достаточно плотно завязан на технологии Chromium. В итоге, Blink отмечен как более перспективный проект, являющийся оптимальным выбором для Qt в долгосрочной перспективе.
Среди факторов, способствовавших принятию решения отмечаются:
- В разработке Chromium большое внимание уделяется кросс-платформенности, поддерживаются все основные настольные платформы и Android. В WebKit поддержка современных платформ отстаёт от Chromium;
- Многие возможности, требующие дополнительной доработки при использовании WebKit, доступны из коробки в Chromium. Например, Chromium упрощает использование наработок по адаптации продукта для разных платформ и операционных систем, без дополнительных Qt-специфичных надстроек работают мультимедийные возможности и WebRTC.
- При использовании Chromium упрощается интеграция с операционной системой, что позволяет сосредоточить внимание на развитии API и интеграции с Qt;
- Разработка Chromium ведётся под очень серъёзным контролем в соответствии с высокими требованиями к качеству, что упрощает тестирование производных продуктов;
- Chromium позволяет обеспечить более качественную и высокопроизводительную интеграцию как с виджетами, так и с элементами сцены Qt Quick;
- Chromium является одним из наиболее динамично развивающихся проектов.
Blink отличается использованием иной многопроцессной архитектуры, изначально применяемой в проектах Chrome/Chromium и подразумевающей использование отдельного диспетчера ресурсов для взаимодействия с другими модулями. Кроме того, в Blink ведётся большая работа по упрощению движка и очищению его от лишнего груза, такого как поддержка устаревших платформ, ограничивающих возможности по дальнейшему развитию и оптимизации.
Для использования преимуществ многопроцессной модели Blink, подразумевающей выполнение движка в отдельном изолированном процессе, разработчики Qt подготовили новый API QWebElement, который отличается от API Qt WebKit иной организацией встраивания QObject и использованием взаимодействия между QObject и web-страницей в асинхронном режиме. Первый выпуск Qt WebEngine войдёт в состав Qt 5.3, ожидаемого весной следующего года. Модуль Qt WebEngine будет поддерживаться для Windows, Mac OS X, Linux и встраиваемых платформ на базе Linux.
Поддержка старого API Qt WebKit будет сохранена для обеспечения совместимости и будет поддерживаться в ближайшие годы, но поддержка будет ограничена исправлением ошибок - функциональность старого движка обновляться не будет. После выпуска Qt 5.2 всё внимание будет уделено разработке Qt WebEngine. Для разработчиков приложений будут представлены средства для бесшовной миграции программ с Qt WebKit на Qt WebEngine, что позволит максимально упростить процесс перехода на новый API. При этом новый API в большинстве случаев будет повторять старый API, например, планируется на 100% сохранить совместимость элемента Qt Quick WebView. Правки потребуется вносить при встраивании QObject или при желании использовать специфичные возможности QWebElement API.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.