Qt WebEngine Platform Notes
Target Platforms
Qt WebEngine does try to support all Supported Platforms of Qt. However, due to different requirements of Chromium this is not always possible. Known limitations are:
- Qt WebEngine currently supports only Windows, Linux, and OS X.
- On Windows, Qt WebEngine only supports Windows Vista or newer as target platform. Due to use of newer API in Chromium, Windows XP is not supported. WinRT is not supported, either.
Building Qt WebEngine from Source
Static builds are not supported.
The requirements for building Qt 5 modules from source are listed separately for each supported platform:
- Qt for Windows - Requirements
- Qt for X11 Requirements
- Qt for OS X - Requirements
In addition, the following tools are required for building the Qt WebEngine module:
The tests for skipping the Qt WebEngine build are located in the qtwebengine
repository, in the tools\qmake\mkspecs
subdirectory. They can be found by searching for skipBuild
.
All Platforms
On all platforms, the following tools are required:
- Python 2.7 or later
- Bison, Flex
- GPerf
Windows
On Windows, Visual Studio 2013 or Visual Studio 2015 is required.
Linux
On Linux, Clang or GCC version 4.7 or later is required.
Qt WebEngine requires pkg-config
to detect most of its dependencies. The following pkg-config
files are required:
dbus-1
fontconfig
If Qt was configured for xcb
, the following pkg-config
files are also required:
libdrm
xcomposite
xcursor
xi
xrandr
xscrnsaver
xtst
Further, development packages for khr
and libcap
need to be installed.
OS X
On OS X, Xcode version 5.1 or later on OS X 10.9 or later is required.
Note: Qt WebEngine cannot be built for the 32-bit mode of OS X (using the macx-clang-32
mkspec
).
Pepper Plugin API Support
Qt WebEngine supports loading Pepper Plugin API (PPAPI) plugins if WebEngineSettings::pluginsEnabled or QWebEngineSettings::PluginsEnabled is set.
Except for the Adobe Flash Player plugin, the plugins must be loaded manually using the Chromium command line syntax with the --register-pepper-plugins
argument. The argument value is a list of entries, separated by commas, that contain the file path and one or several MIME types, separated by semicolons:
<file-path-plugin1>;<mime-type-plugin1>,<file-path-plugin2>;<mime-type1-plugin2>;<mime-type2-plugin2>
For example:
--register-pepper-plugins="libppapi_example.so;application/x-ppapi-example"
The MIME type is important because it determines which embeds the plugin is used for.
Pepper Flash Player Plugin Support
The Pepper Flash player plugin can be loaded automatically if it is installed in one of the following locations, depending on the platform:
- Windows
C:\Windows\SysWOW64\Macromed\Flash\pepflashplayer*.dll C:\Windows\System32\Macromed\Flash\pepflashplayer*.dll
- OS X
/Library/Internet Plug-Ins/PepperFlashPlayer/PepperFlashPlayer.plugin
- Linux
/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so /usr/lib/PepperFlash/libpepflashplayer.so /usr/lib64/chromium/PepperFlash/libpepflashplayer.so
You can also load the Pepper Flash player from a specific location by using command line arguments:
--ppapi-flash-path=./libpepflashplayer.so
By default, the Flash version is set to 11.2.999.999
. You can use the ppapi-flash-version=
argument to set another Flash version in the in the format major.minor.build.revision
:
--ppapi-flash-version=16.0.0.235
Audio and Video Codec Support
Qt WebEngine supports the MPEG-4 Part 14 (MP4) file format only if the required proprietary audio and video codecs, such as H.264 and MPEG layer-3 (MP3), have been enabled. Proprietary codecs can be enabled by passing the following option to qmake:
qmake WEBENGINE_CONFIG+=use_proprietary_codecs
Warning: When distributing proprietary codec libraries, you must acquire licenses for them.
FFmpeg is a cross-platform solution to record, convert, and stream audio and video. It can be configured for use with several codecs, which rises licensing issues during distribution with the codec libraries. For some codecs, open source implementations, such as OpenH264, are available.
Default QSurfaceFormat OpenGL Profile Support
If a new default QSurfaceFormat with a modified OpenGL profile has to be set, it should be set before the application instance is declared, to make sure that all created OpenGL contexts use the same OpenGL profile.
On OS X, if the default QSurfaceFormat is set after the application instance, the application will exit with qFatal(), and print a message that the default QSurfaceFormat should be set before the application instance.