Skip to content

Drop QtWebKit #4039

@The-Compiler

Description

@The-Compiler

So, time to talk about the elephant in the room: I don't intend to drop QtWebKit right away, but it's unrealistic that it's going to be around for years.

Note this post talks about QtWebKit 5.212, the updated thing by annulen - everything older is out of the picture for longer already anyways.

Issues with QtWebKit

  • It's based on WebKitGTK 2.12 (latest stable: 2.20), which had 42 known security issues back in February 2017. Or in the words of GitHub: "This branch is 1987 commits ahead, 30026 commits behind WebKit:master."
  • Even if some security fixes were backported, the last release was in June 2017, and the last activity in the repo was back in January.
  • There's no isolation between pages/tabs, and no sandboxing. That means (unlike with QtWebEngine), as soon as a security issue is exploited, it's game over. Even if that changed (by integrating WebKit2 support), it'd still be inferior to QtWebEngine security-wise, and we couldn't use it anyways as PyQt isn't going to update their wrappers.
  • Even if there are some new features (like fullscreen support), they are never going to arrive in qutebrowser because of PyQt.

Conclusions

In short, unless a group of people (or a company) picks up QtWebKit and it looks like it'd be maintained for a longer time (which is... unlikely?), the question isn't if it's going to be dropped, it's more like a "when".

Some conditions which are likely to make me release a qutebrowser v2.0 with QtWebKit support dropped:

  • Qt 6 is released (~November 2020). At that point, PyQt 6 will be released too, probably with some changes which will make it difficult to continue supporting Qt 5 as well (which might mean I'll drop that too, at some point).
  • There's no updates (or new release) for QtWebKit for another couple of months, making it more and more unreasonable to continue using it from a security standpoint.
  • There's some bigger change in PyQt or qutebrowser which would make it difficult to continue supporting QtWebKit. This is vague, I know - but if that kind of thing happens, it might be the more reasonable thing to just drop it then instead of trying to delay it for a couple more months.
  • Archlinux drops QtWebKit
  • PyQt drops QtWebKit (even if before Qt 6)
  • QtWebKit stops working on major websites due to missing web features.

The security implications also make me wonder whether I should start adding a warning when using QtWebKit, similar to what I've done before for the old QtWebKit before it was removed...


May 2025 update: QtWebKit support is now untested.

Metadata

Metadata

Assignees

No one assigned

    Labels

    component: QtWebKitIssues related to QtWebKit backend.component: style / refactoringIssues related to coding styles or code that should be refactored.priority: 0 - highIssues which are currently the primary focus.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions