{% extends "styled.html" %} {% block content %}

# {{ title }}

Note this warning will only appear once. Use :open qute://warning/webkit to show it again at a later time.

You're using qutebrowser with the QtWebKit backend.

While QtWebKit has gained some traction again recently, its latest release (5.212.0 Alpha 3) is still based on an old upstream WebKit. It also lacks various security features (process isolation/sandboxing) present in QtWebEngine. From the upstream release notes:

> WARNING: This release is based on old WebKit revision with known unpatched vulnerabilities. Please use it carefully and avoid visiting untrusted websites and using it for transmission of sensitive data. Wait for new release from qtwebkit-dev branch to use it with untrusted content.

It's recommended that you use QtWebEngine instead.

## (Outdated) reasons to use QtWebKit

Most reasons why people preferred the QtWebKit backend aren't relevant anymore:

PDF.js support: Supported with QtWebEngine since qutebrowser v1.5.0.

Missing control over Referer header: content.headers.referer is supported with QtWebEngine since qutebrowser v1.5.0.

Missing control over cookies: With Qt 5.11 or newer, the content.cookies.accept setting works on QtWebEngine.

Graphical glitches: The new values for the qt.force_software_rendering setting added in v1.4.0 should hopefully help.

Missing support for notifications: With qutebrowser v1.7.0, initial notification support was added for Qt 5.13.0.

Resource usage: qutebrowser v1.5.0 added the qt.process_model and qt.low_end_device_mode settings which can be used to decrease the resource usage of QtWebEngine (but come with other drawbacks).

Not trusting Google: Various people have checked the connections made by QtWebEngine/qutebrowser, and it doesn't make any connections to Google (or any other unsolicited connections at all). Arguably, having to trust Google also is a smaller issue than having to trust every website you visit because of heaps of security issues...

Nouveau graphic driver: You can use QtWebEngine with software rendering. With Qt 5.13 (~May 2019) it might be possible to run with Nouveau without software rendering.

Wayland: It's possible to use QtWebEngine with XWayland. With Qt 5.11.2 or newer, qutebrowser also runs natively with Wayland.

Instability on FreeBSD: Those seem to be FreeBSD-specific crashes, and unfortunately nobody has looked into them yet so far...

QtWebEngine being unavailable in ArchlinuxARM's PyQt package: QtWebEngine itself is available on the armv7h/aarch64 architectures, but their PyQt package is broken and doesn't come with QtWebEngine support. This has been reported in their forums, but without any change so far. It should however be possible to rebuild the PyQt package from source with QtWebEngine installed.

QtWebEngine being unavailable on Parabola: Claims of Parabola developers about QtWebEngine being "non-free" have repeatedly been disputed, and so far nobody came up with solid evidence about that being the case. Also, note that their qutebrowser package was often outdated in the past (even qutebrowser security fixes took months to arrive there). You might be better off chosing an alternative install method.

White flashing between loads with a custom stylesheet: This doesn't seem to happen with qt.process_model = single-process set. However, note that that setting comes with decreased security and stability, but QtWebKit doesn't have any process isolation at all.

{% endblock %}