Spec-Zone.ru › Qt 5.9

Заметки к платформе Qt WebEngine

Сборка Qt WebEngine из исходного кода

Статические сборки не поддерживаются.

Требования к сборке модулей Qt 5 из исходного кода перечислены отдельно для каждой поддерживаемой платформы:

  • Требования к Qt для Windows
  • Требования к Qt для X11
  • Требования к Qt для macOS

Кроме того, для сборки модуля Qt WebEngine необходимы следующие инструменты:

  • Все платформы
  • Windows
  • Linux
  • macOS

Тесты для пропуска сборки Qt WebEngine расположены в репозитории qtwebengine в подкаталоге tools\qmake\mkspecs. Их можно найти, выполнив поиск по запросу skipBuild.

Все платформы

На всех платформах требуются следующие инструменты:

  • Python 2.7.5 или более поздняя версия. Python 3 не поддерживается.
  • Bison, Flex
  • GPerf

Windows

На Windows необходимы Visual Studio 2015 или 2017 и Windows 10 SDK.

Linux

На Linux требуется Clang или GCC версии 4.7 или более поздней. Поддерживаемые конфигурации — linux-g++ и linux-clang.

Qt WebEngine требует pkg-config для определения большинства его зависимостей. Необходимы следующие файлы pkg-config:

  • dbus-1
  • fontconfig

Если Qt был сконфигурирован для xcb, также необходимы следующие файлы pkg-config:

  • libdrm
  • xcomposite
  • xcursor
  • xi
  • xrandr
  • xscrnsaver
  • xtst

Кроме того, необходимо установить пакеты разработки для khr и libcap.

macOS

На macOS необходимо следующее:

  • macOS 10.9 или более поздняя версия
  • Xcode 5.1 или более поздняя версия
  • macOS 10.10 SDK или более поздняя версия

Примечание: Qt WebEngine не может быть собран для 32-битной версии macOS (используя macx-clang-32 mkspec).

Совместимость с Mac App Store

Приложения, использующие Qt WebEngine, несовместимы с Mac App Store, потому что:

  • Часть кода Chromium использует несколько методов частного API, запрещенных App Store.
  • Приложения, отправляемые в App Store, должны быть подписаны с включенным режимом App Sandbox. App Sandbox вмешивается в собственное начальное задание песочницы Chromium, что приводит к некорректной инициализации Chromium. Это также связано с использованием частного API. Кроме того, сам Chromium в автономном режиме не тестируется с включенным App Sandbox, и даже если будут предприняты усилия для обхода ограничений App Store, это не гарантирует правильную работу библиотеки.

Поддержка AirPlay на MacBook с двойными графическими процессорами

Для правильной работы Qt WebEngine при потоковой передаче на AppleTV с MacBook, поддерживающего переключение GPU, важно добавить опцию NSSupportsAutomaticGraphicsSwitching в файл Info.plist приложения со значением YES. В противном случае могут возникнуть проблемы с рендерингом при создании новых экземпляров просмотра веб-движка после включения или выключения AirPlay.

Поддержка профиля OpenGL по умолчанию QSurfaceFormat

Если необходимо установить новый формат QSurfaceFormat по умолчанию с измененным профилем OpenGL, он должен быть установлен до объявления экземпляра приложения, чтобы убедиться, что все созданные контексты OpenGL используют один и тот же профиль OpenGL.

На macOS, если формат QSurfaceFormat по умолчанию устанавливается после экземпляра приложения, приложение завершится с вызовом qFatal() и выведет сообщение о том, что формат QSurfaceFormat по умолчанию должен быть установлен до создания экземпляра приложения.

Поддержка песочницы

Qt WebEngine предоставляет встроенную поддержку песочницы для процессов рендеринга Chromium на Linux и macOS. Поддержка песочницы в настоящее время не поддерживается на Windows из-за ограничений в способе настройки песочницы и ее взаимодействия с процессом хоста, предоставляемым библиотеками Qt WebEngine.

На macOS нет особых требований для включения поддержки песочницы.

На Linux ядро должно поддерживать функцию анонимных пространств имен (версия ядра ≥ 3.8) и функцию seccomp-bpf (версия ядра ≥ 3.5). Поддержка песочницы setuid не поддерживается и, следовательно, отключена.

Для явного отключения песочницы переменная среды QTWEBENGINE_DISABLE_SANDBOX может быть установлена в 1, или аргумент командной строки --no-sandbox может быть передан исполняемому файлу приложения.

Доступность и производительность

Qt WebEngine включает поддержку доступности веб-страниц при соблюдении следующих условий:

  • Qt Core сконфигурирован и собран с включенной поддержкой доступности.
  • Плагин QPA уведомляется операционной системой о необходимости активации доступности. Это происходит, например, при использовании приложения для чтения с экрана на Windows или VoiceOver на macOS.

Из-за некоторых ограничений плагин QPA на Linux почти всегда сообщает о необходимости активации доступности. На больших HTML-страницах это может значительно замедлить скорость рендеринга.

Поэтому, начиная с Qt 5.9, поддержка доступности Qt WebEngine по умолчанию отключена на Linux. Ее можно включить, установив переменную среды QTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY в ненулевое значение.

Выпадающие меню в приложениях в полноэкранном режиме на Windows

Из-за ограничения в композиторе Windows приложения, отображающие веб-вью Qt в полноэкранном режиме, не смогут корректно отображать всплывающие окна или другие окна верхнего уровня. Причина и решение проблемы описаны в Полностьюэкранные окна на основе OpenGL и QWindowsWindowFunctions::setHasBorderInFullScreen.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qtwebengine-platform-notes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API