diff options
-rw-r--r-- | .mypy.ini | 3 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/darkmode.py | 8 | ||||
-rw-r--r-- | qutebrowser/config/configdata.yml | 17 | ||||
-rw-r--r-- | qutebrowser/config/qtargs.py | 2 | ||||
-rw-r--r-- | scripts/dev/check_coverage.py | 2 | ||||
-rw-r--r-- | tests/unit/browser/webengine/test_darkmode.py | 1 | ||||
-rw-r--r-- | tests/unit/config/test_qtargs.py | 13 |
7 files changed, 27 insertions, 19 deletions
@@ -115,6 +115,9 @@ disallow_untyped_defs = True [mypy-qutebrowser.browser.webengine.webengineelem] disallow_untyped_defs = True +[mypy-qutebrowser.browser.webengine.darkmode] +disallow_untyped_defs = True + [mypy-qutebrowser.keyinput.*] disallow_untyped_defs = True diff --git a/qutebrowser/browser/webengine/darkmode.py b/qutebrowser/browser/webengine/darkmode.py index 5103ff5b2..9497fac4c 100644 --- a/qutebrowser/browser/webengine/darkmode.py +++ b/qutebrowser/browser/webengine/darkmode.py @@ -263,8 +263,8 @@ def _variant() -> Variant: # If we don't have PYQT_WEBENGINE_VERSION, we'll need to assume based on the Qt # version. - assert not qtutils.version_check('5.13', - compiled=False) # type: ignore[unreachable] + assert not qtutils.version_check( # type: ignore[unreachable] + '5.13', compiled=False) if qtutils.version_check('5.11', compiled=False): return Variant.qt_511_to_513 @@ -280,9 +280,9 @@ def settings() -> typing.Iterator[typing.Tuple[str, str]]: return variant = _variant() - settings, mandatory_settings = _DARK_MODE_DEFINITIONS[variant] + setting_defs, mandatory_settings = _DARK_MODE_DEFINITIONS[variant] - for setting, key, mapping in settings: + for setting, key, mapping in setting_defs: # To avoid blowing up the commandline length, we only pass modified # settings to Chromium, as our defaults line up with Chromium's. # However, we always pass enabled/algorithm to make sure dark mode gets diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 118211971..87091371f 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -2715,8 +2715,8 @@ colors.webpage.darkmode.algorithm: desc: >- Which algorithm to use for modifying how colors are rendered with darkmode. - The `lightness-cielab` value was added with QtWebEngine 5.14 and is treated like - `lightness-hsl` with older QtWebEngine versions. + The `lightness-cielab` value was added with QtWebEngine 5.14 and is treated + like `lightness-hsl` with older QtWebEngine versions. type: name: String valid_values: @@ -2757,15 +2757,16 @@ colors.webpage.darkmode.policy.images: valid_values: - always: Apply dark mode filter to all images. - never: Never apply dark mode filter to any images. - - smart: "Apply dark mode based on image content. Not available with Qt 5.10 / - 5.15.0." + - smart: "Apply dark mode based on image content. Not available with Qt + 5.10 / 5.15.0." desc: >- Which images to apply dark mode to. - With QtWebEngine 5.15.0, this setting can cause frequent renderer process crashes - due to a https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/304211[bug - in Qt]. With QtWebEngine 5.10, this is not available at all. In those cases, the - 'smart' setting is ignored and treated like 'never'. + With QtWebEngine 5.15.0, this setting can cause frequent renderer process + crashes due to a + https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/304211[ + bug in Qt]. With QtWebEngine 5.10, this is not available at all. In those + cases, the 'smart' setting is ignored and treated like 'never'. restart: true backend: QtWebEngine: Qt 5.10 diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py index 30d72f9bb..868f4d669 100644 --- a/qutebrowser/config/qtargs.py +++ b/qutebrowser/config/qtargs.py @@ -26,7 +26,7 @@ import argparse from qutebrowser.config import config from qutebrowser.misc import objects -from qutebrowser.utils import usertypes, qtutils, utils, log +from qutebrowser.utils import usertypes, qtutils, utils def qt_args(namespace: argparse.Namespace) -> typing.List[str]: diff --git a/scripts/dev/check_coverage.py b/scripts/dev/check_coverage.py index 1efa98b88..6ca531a1b 100644 --- a/scripts/dev/check_coverage.py +++ b/scripts/dev/check_coverage.py @@ -218,6 +218,8 @@ PERFECT_FILES = [ 'qutebrowser/browser/webengine/spell.py'), ('tests/unit/browser/webengine/test_webengine_cookies.py', 'qutebrowser/browser/webengine/cookies.py'), + ('tests/unit/browser/webengine/test_darkmode.py', + 'qutebrowser/browser/webengine/darkmode.py'), ] diff --git a/tests/unit/browser/webengine/test_darkmode.py b/tests/unit/browser/webengine/test_darkmode.py index f1b08215c..b2ca6a20a 100644 --- a/tests/unit/browser/webengine/test_darkmode.py +++ b/tests/unit/browser/webengine/test_darkmode.py @@ -174,6 +174,7 @@ def test_variant(monkeypatch, qversion, webengine_version, expected): monkeypatch.setattr(darkmode, 'PYQT_WEBENGINE_VERSION', webengine_version) assert darkmode._variant() == expected + def test_broken_smart_images_policy(config_stub, monkeypatch, caplog): config_stub.val.colors.webpage.darkmode.enabled = True config_stub.val.colors.webpage.darkmode.policy.images = 'smart' diff --git a/tests/unit/config/test_qtargs.py b/tests/unit/config/test_qtargs.py index 98a89f1a2..a3a7f910d 100644 --- a/tests/unit/config/test_qtargs.py +++ b/tests/unit/config/test_qtargs.py @@ -18,13 +18,12 @@ import sys import os -import logging import pytest from qutebrowser import qutebrowser -from qutebrowser.config import qtargs, configdata -from qutebrowser.utils import usertypes, version +from qutebrowser.config import qtargs +from qutebrowser.utils import usertypes from helpers import utils @@ -390,17 +389,19 @@ class TestQtArgs: @utils.qt510 def test_blink_settings(self, config_stub, monkeypatch, parser): + from qutebrowser.browser.webengine import darkmode monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine) - monkeypatch.setattr(qtargs, '_darkmode_version', - lambda: qtargs.DarkModeVersion.qt_515_2) + monkeypatch.setattr(darkmode, '_variant', + lambda: darkmode.Variant.qt_515_2) config_stub.val.colors.webpage.darkmode.enabled = True parsed = parser.parse_args([]) args = qtargs.qt_args(parsed) - expected = '--blink-settings=forceDarkModeEnabled=true,forceDarkModeImagePolicy=2' + expected = ('--blink-settings=forceDarkModeEnabled=true,' + 'forceDarkModeImagePolicy=2') assert expected in args |