diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 098658797..0b507dc65 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.0.2 +current_version = 2.1.0 commit = True message = Release v{new_version} tag = True diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index 3840f369d..edbd69513 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -15,10 +15,102 @@ breaking changes (such as renamed commands) can happen in minor releases. // `Fixed` for any bug fixes. // `Security` to invite users to upgrade in case of vulnerabilities. -[[v2.1.0]] -v2.1.0 (unreleased) +[[v2.2.0]] +v2.2.0 (unreleased) ------------------- +Deprecated +~~~~~~~~~~ + +- Running qutebrowser with Qt 5.12.0 is now unsupported and logs a warning. It + should still work, however, a workaround for issues with the Nvidia graphic + driver was dropped. Newer Qt 5.12.x versions are still fully supported. + +Added +~~~~~ + +- New `input.media_keys` setting which can be used to disable Chromium's + handling of media keys. + +Changed +~~~~~~~ + +- The `content.ssl_strict` setting got renamed to + `content.tls.certificate_errors`, with new values: + * `ask`: Prompt on overridable certificate errors (`ssl_strict = 'ask'`) + * `ask-block-thirdparty`: See below + * `block`: Block the page load (`ssl_strict = True`) + * `load-insecurely`: Load the page despite the error (`ssl_strict = False`) +- The new `content.tls.certificate_errors` setting now also understands the + value `ask-block-thirdparty`, which asks for page loads but automatically blocks + resource loads on TLS errors. This behavior is consistent with what other + browsers do. +- The prompt text shown on certificate errors has been improved to make it + clearer what kind of error occurred exactly. +- The completion now also shows bindings starting with `set-cmd-text` in its + third column, such as `o` for `:open`. + +[[v2.1.1]] +v2.1.1 (unreleased) +------------------- + +Added +~~~~~ + +- Site-specific quirk for krunker.io, which shows a "Socket Error" with + qutebrowser's default Accept-Language header. The workaround is equivalent to + doing `:set -u matchmaker.krunker.io content.headers.accept_language ""`. + +Changed +~~~~~~~ + +- Clicking the 'x' in the devtools window to hide it now also leaves insert + mode. + +Fixed +~~~~~ + +- The workaround for black on (almost) black formula images in dark mode now + also works with Qt 5.12 and 5.13. +- When running in Flatpak, the QtWebEngine version is now detected properly. + Before, a wrong version was assumed, breaking dark mode and certain workarounds + (resulting in crashes on websites like LinkedIn or TradingView). +- When running in Flatpak, communicating with an existing instance now works + properly. Before, a new instance was always opened. +- When the metainfo in the completion database doesn't have the expected + structure, qutebrowser now tries to gracefully recover from the situation + instead of crashing. +- When qutebrowser displays an error during initialization, opening a second + instance would lead to a crash. Instead, qutebrowser now ignores the attempt + to open a new page as long as it's not fully initialized yet. +- When the Brave adblock cache folder was unreadable, qutebrowser crashed. It + now displays an error instead. +- The `qute-pass` userscript now works correctly when generating OTP tokens + with `gopass`. +- When using `bindings.key_mappings` to map a key to multiple other keys, + qutebrowser would crash. This is now handled correctly - however, note that + it's usually better to map keys to commands instead. + +[[v2.1.0]] +v2.1.0 (2021-03-12) +------------------- + +Removed +~~~~~~~ + +- The following command aliases were deprecated in v2.0.0 and are now removed: + * `run-macro` -> `macro-run` + * `record-macro` -> `macro-record` + * `buffer` -> `tab-select` + * `open-editor` -> `edit-text` + * `toggle-selection` -> `selection-toggle` + * `drop-selection` -> `selection-drop` + * `reverse-selection` -> `selection-reverse` + * `follow-selected` -> `selection-follow` + * `follow-hint` -> `hint-follow` + * `enter-mode` -> `mode-enter` + * `leave-mode` -> `mode-leave` + Added ~~~~~ @@ -32,7 +124,7 @@ Added Changed ~~~~~~~ -- Initial support for Qt 5.15.3 and PyQt 5.15.3 +- Initial support for QtWebEngine 5.15.3 and PyQt 5.15.3/.4 - The `colors.webpage.prefers_color_scheme_dark` setting got renamed to `colors.webpage.preferred_color_scheme` and now takes the values `auto`, `light` and `dark` (instead of being `True` for dark and `False` for auto). @@ -60,13 +152,25 @@ Changed - The `fileselect.*.command` settings now support file selectors writing the selected paths to stdout, which is used if no `{}` placeholder is contained in the configured command. +- The `--debug-flag` argument now understands a new `log-sensitive-keys` value + which logs all keypresses (including those in insert/passthrough/prompt/... + mode) for debugging. +- The `readability` and `readability-js` userscripts now add a + `qute-readability` CSS class to the page, so that it can be styled easily via + a user stylesheet. Fixed ~~~~~ +- With QtWebEngine 5.15.3 and some locales, Chromium can't start its + subprocesses. As a result, qutebrowser only shows a blank page and logs + "Network service crashed, restarting service.". This release adds a + `qt.workarounds.locale` setting working around the issue. It is disabled by + default since distributions shipping 5.15.3 will probably have a proper patch + for it backported very soon. - The `colors.webpage.preferred_color_scheme` and `colors.webpage.darkmode.*` - settings now work correctly with the upcoming QtWebEngine 5.15.3 (and Gentoo, - which at the time of writing packages 5.15.3 disguised as 5.15.2). + settings now work correctly with QtWebEngine 5.15.3 (and Gentoo, which at the + time of writing packages 5.15.3 disguised as 5.15.2). - When dark mode settings were set, existing `blink-features` arguments in `qt.args` (or `--qt-flag`) were overridden. They are now combined properly. - On QtWebEngine 5.15.2, auto detection for the `prefers-color-scheme` media @@ -87,6 +191,23 @@ Fixed properly. - The "try again" button on error pages now works correctly with JavaScript disabled. +- If a GreaseMonkey script doesn't have a "@run-at" comment, qutebrowser + accidentally treated that as "@run-at document-idle". However, other + GreaseMonkey implementations default to "@run-at document-end" instead, which + is what qutebrowser now does, too. +- The `hist_importer.py` script didn't work correctly after qutebrowser v2.0.0 + and resulted in a history database qutebrowser couldn't read properly. It now + works properly again. +- With certain QtWebEngine versions (5.15.0 based on Chromium 80 and 5.15.3 + based on Chromium 87), Chromium's dark mode doesn't invert certain SVG images, + even with `colors.wegpage.darkmode.policy.images` set to `smart`. + Most notably, this causes formulae on Wikipedia to display black on (almost) + black. If `content.site_specific_quirks` is enabled, qutebrowser now injects + some CSS as a workaround, which inverts all math formula images on Wikipedia + (and potentially other sites, if they use the same CSS class). +- When a hint label text started with an apostrophe, it would show an escaped + text until the hints first character has been pressed. It now shows up + correctly. [[v2.0.2]] v2.0.2 (2021-02-04) diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index 392f60c49..9f10f588d 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -16,7 +16,7 @@ |<>|Backend to use to display websites. |<>|Keybindings mapping keys to commands in different modes. |<>|Default keybindings. If you want to add bindings, modify `bindings.commands` instead. -|<>|This setting can be used to map keys to other keys. +|<>|Map keys to other keys, so that they are equivalent in all modes. |<>|When to show a changelog after qutebrowser was upgraded. |<>|Background color of the completion widget category headers. |<>|Bottom border color of the completion widget category headers. @@ -191,7 +191,7 @@ |<>|Send DNS requests over the configured proxy. |<>|Allow websites to register protocol handlers via `navigator.registerProtocolHandler`. |<>|Enable quirks (such as faked user agent headers) needed to get specific sites to work properly. -|<>|Validate SSL handshakes. +|<>|How to proceed on TLS certificate errors. |<>|How navigation requests to URLs with unknown schemes are handled. |<>|List of user stylesheet filenames to use. |<>|Enable WebGL. @@ -261,6 +261,7 @@ |<>|Leave insert mode when starting a new page load. |<>|Switch to insert mode when clicking flash and other plugins. |<>|Include hyperlinks in the keyboard focus chain when tabbing. +|<>|Whether the underlying Chromium should handle media keys. |<>|Enable back and forward buttons on the mouse. |<>|Enable Opera-like mouse rocker gestures. |<>|Timeout (in milliseconds) for partially typed key bindings. @@ -283,6 +284,7 @@ |<>|Turn on Qt HighDPI scaling. |<>|When to use Chromium's low-end device mode. |<>|Which Chromium process model to use. +|<>|Work around locale parsing issues in QtWebEngine 5.15.3. |<>|Delete the QtWebEngine Service Worker directory on every start. |<>|When/how to show the scrollbar. |<>|Enable smooth scrolling for web pages. @@ -773,9 +775,10 @@ Default: [[bindings.key_mappings]] === bindings.key_mappings -This setting can be used to map keys to other keys. +Map keys to other keys, so that they are equivalent in all modes. When the key used as dictionary-key is pressed, the binding for the key used as dictionary-value is invoked instead. -This is useful for global remappings of keys, for example to map Ctrl-[ to Escape. +This is useful for global remappings of keys, for example to map to . +NOTE: This should only be used if two keys should always be equivalent, i.e. for things like (keypad) and (non-keypad). For normal command bindings, qutebrowser works differently to vim: You always bind keys to commands, usually via `:bind` or `config.bind()`. Instead of using this setting, consider finding the command a key is bound to (e.g. via `:bind gg`) and then binding the same command to the desired key. Note that when a key is bound (via `bindings.default` or `bindings.commands`), the mapping is ignored. Type: <> @@ -1599,6 +1602,8 @@ The `lightness-cielab` value was added with QtWebEngine 5.14 and is treated like This setting requires a restart. +This setting is only available with the QtWebEngine backend. + Type: <> Valid values: @@ -1609,8 +1614,6 @@ Valid values: Default: +pass:[lightness-cielab]+ -This setting is only available with the QtWebEngine backend. - [[colors.webpage.darkmode.contrast]] === colors.webpage.darkmode.contrast Contrast for dark mode. @@ -1618,12 +1621,12 @@ This only has an effect when `colors.webpage.darkmode.algorithm` is set to `ligh This setting requires a restart. +This setting is only available with the QtWebEngine backend. + Type: <> Default: +pass:[0.0]+ -This setting is only available with the QtWebEngine backend. - [[colors.webpage.darkmode.enabled]] === colors.webpage.darkmode.enabled Render all web contents using a dark theme. @@ -1644,12 +1647,12 @@ Example configurations from Chromium's `chrome://flags`: This setting requires a restart. +This setting is only available with the QtWebEngine backend. + Type: <> Default: +pass:[false]+ -This setting is only available with the QtWebEngine backend. - [[colors.webpage.darkmode.grayscale.all]] === colors.webpage.darkmode.grayscale.all Render all colors as grayscale. @@ -1657,12 +1660,12 @@ This only has an effect when `colors.webpage.darkmode.algorithm` is set to `ligh This setting requires a restart. +This setting is only available with the QtWebEngine backend. + Type: <> Default: +pass:[false]+ -This setting is only available with the QtWebEngine backend. - [[colors.webpage.darkmode.grayscale.images]] === colors.webpage.darkmode.grayscale.images Desaturation factor for images in dark mode. @@ -1670,14 +1673,14 @@ If set to 0, images are left as-is. If set to 1, images are completely grayscale This setting requires a restart. -Type: <> - -Default: +pass:[0.0]+ - On QtWebEngine, this setting requires Qt 5.14 or newer. On QtWebKit, this setting is unavailable. +Type: <> + +Default: +pass:[0.0]+ + [[colors.webpage.darkmode.policy.images]] === colors.webpage.darkmode.policy.images Which images to apply dark mode to. @@ -1685,6 +1688,8 @@ With QtWebEngine 5.15.0, this setting can cause frequent renderer process crashe This setting requires a restart. +This setting is only available with the QtWebEngine backend. + Type: <> Valid values: @@ -1695,8 +1700,6 @@ Valid values: Default: +pass:[smart]+ -This setting is only available with the QtWebEngine backend. - [[colors.webpage.darkmode.policy.page]] === colors.webpage.darkmode.policy.page Which pages to apply dark mode to. @@ -1704,6 +1707,10 @@ The underlying Chromium setting has been removed in QtWebEngine 5.15.3, thus thi This setting requires a restart. +On QtWebEngine, this setting requires Qt 5.14 or newer. + +On QtWebKit, this setting is unavailable. + Type: <> Valid values: @@ -1713,10 +1720,6 @@ Valid values: Default: +pass:[smart]+ -On QtWebEngine, this setting requires Qt 5.14 or newer. - -On QtWebKit, this setting is unavailable. - [[colors.webpage.darkmode.threshold.background]] === colors.webpage.darkmode.threshold.background Threshold for inverting background elements with dark mode. @@ -1725,14 +1728,14 @@ Note: This behavior is the opposite of `colors.webpage.darkmode.threshold.text`! This setting requires a restart. -Type: <> - -Default: +pass:[0]+ - On QtWebEngine, this setting requires Qt 5.14 or newer. On QtWebKit, this setting is unavailable. +Type: <> + +Default: +pass:[0]+ + [[colors.webpage.darkmode.threshold.text]] === colors.webpage.darkmode.threshold.text Threshold for inverting text with dark mode. @@ -1740,14 +1743,14 @@ Text colors with brightness below this threshold will be inverted, and above it This setting requires a restart. -Type: <> - -Default: +pass:[256]+ - On QtWebEngine, this setting requires Qt 5.14 or newer. On QtWebKit, this setting is unavailable. +Type: <> + +Default: +pass:[256]+ + [[colors.webpage.preferred_color_scheme]] === colors.webpage.preferred_color_scheme Value to use for `prefers-color-scheme:` for websites. @@ -1756,6 +1759,10 @@ The "auto" value is broken on QtWebEngine 5.15.2 due to a Qt bug. There, it will This setting requires a restart. +On QtWebEngine, this setting requires Qt 5.14 or newer. + +On QtWebKit, this setting is unavailable. + Type: <> Valid values: @@ -1766,10 +1773,6 @@ Valid values: Default: +pass:[auto]+ -On QtWebEngine, this setting requires Qt 5.14 or newer. - -On QtWebKit, this setting is unavailable. - [[completion.cmd_history_max_items]] === completion.cmd_history_max_items Number of commands to save in the command history. @@ -1941,12 +1944,12 @@ Automatically start playing `