The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

23.01.2014 21:30

Компания 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 является одним из наиболее динамично развивающихся проектов.


  1. Главная ссылка к новости (http://blog.qt.digia.com/blog/...)
  2. OpenNews: Выпуск фреймворка Qt 5.2 и среды разработки Qt Creator 3.0
  3. OpenNews: Выпуск сборочного инструментария qbs 1.1.0, развиваемого проектом Qt
  4. OpenNews: Первый выпуск Qt Enterprise Embedded, платформы для создания готовых мобильных систем
  5. OpenNews: Qt переходит с WebKit на браузерный движок Blink и технологии Chromium
Лицензия: CC-BY
Тип: Программы
Ключевые слова: webengine, qt, webkit, blink
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (30) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, АнониМ (ok), 22:30, 23/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а Blink только гугл развивает? А то обычно вендор лок, перевешивает все гипотетические плюсы.
     
     
  • 2.3, exist (ok), 22:40, 23/01/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Развивается сообществом.
     
  • 2.4, анонимус (??), 22:52, 23/01/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну вообще-то Qt-Project являлись одним из крупнейших контрибуторов в вебкит, после эппла и гугла. После форкта гуглом вебкита, кутишники ушли вместе с ними.
     
     
  • 3.24, annulen (ok), 12:22, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    При этом основным аргументом за переход являлась недостаточность у qt project ресурсов для развития WebKit в условиях ухода google. По факту, основным вкладом qt project в WebKit в последнее время была поддержка собственного кода в нем.
     

  • 1.2, Пиу (ok), 22:39, 23/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    а для айфона когда будет? а то в qt5.2 я вебкита для айфона не нашел.
    сложно писать кроссплатформенный софт (андроид -- айфон), когда компоненты поддерживаются выборочно
     
     
  • 2.5, Аноным (ok), 22:55, 23/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего, что в червивеньком куча ограничений?
     
     
  • 3.7, Пиу (ok), 23:46, 23/01/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    расскажите каких
    и про ограничения в андроиде расскажите сразу
     
     
  • 4.9, анон (?), 00:05, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нельзя в червивом другие браузерные движки пихать. С Андроидом в этом плане все хорошо.
     
     
  • 5.12, Пиу (ok), 01:08, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    но там есть вебкит для приложений, не?
     
     
  • 6.23, Аноним (-), 12:02, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Урезанный.
     
     
  • 7.25, annulen (ok), 12:23, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Урезанный.

    Нетъ.

     
  • 2.6, Led (ok), 23:24, 23/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > а для айфона когда будет?

    Спрашивайте в iКлубах страны

     
     
  • 3.8, Пиу (ok), 23:46, 23/01/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Спрашивайте в iКлубах страны

    не хожу

     
     
  • 4.13, Аноним (-), 02:23, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +8 +/
    А на iПарады?
     

  • 1.11, paulus (ok), 00:59, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Разработка Chromium ведётся под очень серъёзным контролем в соответствии с высокими требованиями к качеству

    Chromium, мне нравится.., но там так все серьезно, что в свои сборки не могут включить api google key и настроенный setuid-sandbox... Уж молчу о проблемах, которые сейчас в новостях...

     
  • 1.14, Аноним (-), 04:40, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жду перевода Konqueror из KDE 3.5.13 на Blink. Это единственный недостаток форка KDE3.
     
     
  • 2.16, Аноним (-), 06:08, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Этого не будет.
     
  • 2.17, Аноним (-), 07:08, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А обещали?
    (Нет, правда интересно)
     

  • 1.15, Аноним (-), 06:05, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Наконец QupZilla перейдёт на новый движок.
     
     
  • 2.20, el torito (?), 10:54, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Очень жаль.
     
     
  • 3.26, Аноним (-), 12:35, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    что ты мудaк?
     

  • 1.18, Аноним (-), 08:40, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Хана. Теперь любая веб-обвязка в кедах будет жрать тысячи оперативы.
     
  • 1.19, qwerty (??), 09:04, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >поддержка устаревших платформ, ограничивающих возможности по дальнейшему развитию и оптимизации.

    Вот скажите, как

    #if defined platform1

    #elif defined platform2

    #endif

    Ограничивает развитие и оптимизацию platform1 ?

     
     
  • 2.21, linux must _RIP__ (?), 11:28, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    шшшшшш.. сейчас пятиминутка ненависти к apple и любви к google.. :-)

    Всем так нравится новый вендор-лок что все готовы себе его ставить :)

     
  • 2.22, абыр (ok), 11:53, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кто будет поддерживать код внутри ифдефов ?
     
     
  • 3.27, ip1981 (ok), 12:36, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Заинтересованные люди. Он есть не просит. Даже если на него забьют на время, потом он сможет служить подсказкой для молодых портеров.

    Вот это просто грубость: https://codereview.chromium.org/23566006

     
     
  • 4.29, Аноним (-), 21:17, 24/01/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Он есть не просит.

    Как так - не просит? Код программы всегда меняется, где-то выбирают другую логику работы. И всё что с ней было связано приходится тоже обновлять.

     
  • 4.30, Lain_13 (ok), 06:02, 25/01/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это если вокруг блоков в ifdef ничего не меняется. А вот если код вокруг переписывают, то внезапно оказывается, что весь этот кусок нафиг не нужен и непонятно к чему его теперь прилепить, а нужен другой, но никто его не желает писать так-как та же Солярка сейчас уже никому не нужна, а Hurd до сих пор не нужен, хоть и 23 года насчитал уже. Хочешь поддержку этих систем в Блинке? Ну так займись ею, а то кроме тебя, похоже, некому. Но и это ещё не всё. Для полноценной поддержки нужно, чтоб его в этим системах ещё и тестировали, а не просто собирали для них, а этим тоже кто-то должен заниматься. А некому. Как видишь код в ifdef-ах очень даже прожорливым оказывается.
     

  • 1.28, Mihail Zenkov (ok), 17:03, 24/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Заначит ли это, что в браузерах перешедших на QtWebEngine будет поддержка mht?
     
  • 1.31, Sauron (??), 16:37, 26/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Собрал, потыкался, работает заметно шустрее старого QtWebkit'а и даже шустрее Chromium'а
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Fornex
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру