The release of the web browser qutebrowser 3.5.0 has been published, providing a minimal graphical interface that does not distract from content viewing, and a navigation system styled after the Vim text editor, built entirely on keyboard shortcuts. The code is written in Python using PyQt and QtWebEngine. The source code is distributed under the GPLv3 license. The use of Python does not affect performance, as rendering and content parsing are powered by the Blink engine and the Qt library.
The browser supports a tab system, download manager, private browsing mode, built-in PDF viewer (pdf.js), ad-blocking system (at the host blocking level), and an interface for browsing the history. For viewing videos on YouTube, an external video player can be configured. Navigation through the page is accomplished using the "hjkl" keys, opening a new page can be done by pressing "o", and switching between tabs is done using the "J" and "K" keys or "Alt-tab number". Pressing ":" brings up a command line prompt where page search and standard commands can be executed, just like in vim, for example, ":q" to quit and ":w" to save the page. A system of "hints" marks links and images for quick navigation to elements on the page.

In the new version:
- The browser identifier (user agent) has been changed to use a shortened version number of Chromium, without mentioning QtWebEngine; that is, the User Agent header is now equivalent to the header issued by standard Chromium. This change was made to bypass anti-bot system blocks that recognize requests from QtWebEngine as bot requests (for example, QtWebEngine blocks sites like Whatsapp Web, UPS, and Digitec Galaxus).
- Builds for Windows and macOS have been switched to using Qt 6.9.0.
- The Chromium engine 130.0.6723.192 has been used as a base, which incorporates vulnerability patches from Chromium 133.0.6943.141.
- In the setting 'content.headers.user_agent', support for substituting '{upstream_browser_version_short}' has been implemented, which contains the version of the Chromium engine being used.
- Userscripts capabilities have been expanded: in qute-bitwarden, support for passing the password to the child process via an environment variable instead of specifying it in the command line options has been added.
- A debug flag '-D no-system-pdfjs' has been added to ignore the system PDF viewer PDF.js.
- A wrapper has been added to support the URL.parse method, which is absent in QtWebEngine < 6.9 and used in PDF.js 5.
Source: opennet.ru
