summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Morse <ekpneo@users.noreply.github.com>2020-11-29 10:58:27 -0800
committerTed Morse <ekpneo@users.noreply.github.com>2020-11-29 10:58:27 -0800
commit1f67527662a076aa0a3caf5348f9ba6b663f4a0e (patch)
tree1eb195c2b6f3832756aa5a439c5ae1a077033d59
parent6d01062305e554f3d0e8989f0ba45c998c425ef1 (diff)
downloadqutebrowser-1f67527662a076aa0a3caf5348f9ba6b663f4a0e.tar.gz
qutebrowser-1f67527662a076aa0a3caf5348f9ba6b663f4a0e.zip
Only apply blink-settings on Qt 15.5.2
Turns out Qt 5.15.{0,1} also needs `--force-dark-mode`. This commit fixes it to only use the blink-setting on Qt 5.15.2 and up. It also parameterizes the tests better to test that the settings work on their respective Qt versions.
-rw-r--r--qutebrowser/browser/webengine/darkmode.py4
-rw-r--r--qutebrowser/config/qtargs.py8
-rw-r--r--tests/helpers/utils.py3
-rw-r--r--tests/unit/browser/webengine/test_darkmode.py19
-rw-r--r--tests/unit/config/test_qtargs.py8
5 files changed, 26 insertions, 16 deletions
diff --git a/qutebrowser/browser/webengine/darkmode.py b/qutebrowser/browser/webengine/darkmode.py
index 5ae079392..86b7f8c59 100644
--- a/qutebrowser/browser/webengine/darkmode.py
+++ b/qutebrowser/browser/webengine/darkmode.py
@@ -264,8 +264,10 @@ def _variant() -> Variant:
def settings() -> Iterator[Tuple[str, str]]:
"""Get necessary blink settings to configure dark mode for QtWebEngine."""
- if (qtutils.version_check('5.15', compiled=False) and
+ if (qtutils.version_check('5.15.2', compiled=False) and
config.val.colors.webpage.prefers_color_scheme_dark):
+ # In future versions of 'blink', (> Qt 5.15.2) the enumeration has
+ # changed and this will need to be set to '0' instead.
yield "preferredColorScheme", "1"
if not config.val.colors.webpage.darkmode.enabled:
diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py
index 663296bbc..2136f7e7f 100644
--- a/qutebrowser/config/qtargs.py
+++ b/qutebrowser/config/qtargs.py
@@ -204,10 +204,10 @@ def _qtwebengine_settings_args() -> Iterator[str]:
}
if (qtutils.version_check('5.14', compiled=False) and
- not qtutils.version_check('5.15', compiled=False)):
- # In Qt 5.14, `--force-dark-mode` is used to set the preferred
- # colorscheme. In Qt 5.15, this is handled by a blink-setting
- # instead.
+ not qtutils.version_check('5.15.2', compiled=False)):
+ # In Qt 5.14 to 5.15.1, `--force-dark-mode` is used to set the
+ # preferred colorscheme. In Qt 5.15.2, this is handled by a
+ # blink-setting instead.
settings['colors.webpage.prefers_color_scheme_dark'] = {
True: '--force-dark-mode',
False: None,
diff --git a/tests/helpers/utils.py b/tests/helpers/utils.py
index 3b5ee0ab6..2c275bf15 100644
--- a/tests/helpers/utils.py
+++ b/tests/helpers/utils.py
@@ -44,9 +44,6 @@ ON_CI = 'CI' in os.environ
qt514 = pytest.mark.skipif(
not qtutils.version_check('5.14'), reason="Needs Qt 5.14 or newer")
-qt515 = pytest.mark.skipif(
- not qtutils.version_check('5.15'), reason="Needs Qt 5.15 or newer")
-
class PartialCompareOutcome:
diff --git a/tests/unit/browser/webengine/test_darkmode.py b/tests/unit/browser/webengine/test_darkmode.py
index 0c39cf95c..cd84526c3 100644
--- a/tests/unit/browser/webengine/test_darkmode.py
+++ b/tests/unit/browser/webengine/test_darkmode.py
@@ -32,16 +32,23 @@ def patch_backend(monkeypatch):
monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebEngine)
-@pytest.mark.parametrize('enabled, expected', [
+@pytest.mark.parametrize('qversion, enabled, expected', [
# Disabled or nothing set
- (False, []),
+ ("5.14", False, []),
+ ("5.15.0", False, []),
+ ("5.15.1", False, []),
+ ("5.15.2", False, []),
# Enabled in configuration
- (True, [("preferredColorScheme", "1")]),
+ ("5.14", True, []),
+ ("5.15.0", True, []),
+ ("5.15.1", True, []),
+ ("5.15.2", True, [("preferredColorScheme", "1")]),
])
-@utils.qt515
-def test_colorscheme(config_stub, monkeypatch, enabled, expected):
- config_stub.set_obj('colors.webpage.prefers_color_scheme_dark', enabled)
+@utils.qt514
+def test_colorscheme(config_stub, monkeypatch, qversion, enabled, expected):
+ monkeypatch.setattr(darkmode.qtutils, 'qVersion', lambda: qversion)
+ config_stub.val.colors.webpage.prefers_color_scheme_dark = enabled
assert list(darkmode.settings()) == expected
diff --git a/tests/unit/config/test_qtargs.py b/tests/unit/config/test_qtargs.py
index d26a8ab50..8ff5b95d3 100644
--- a/tests/unit/config/test_qtargs.py
+++ b/tests/unit/config/test_qtargs.py
@@ -292,10 +292,14 @@ class TestQtArgs:
@pytest.mark.parametrize('dark, qt_version, added', [
(True, "5.13", False),
(True, "5.14", True),
- (True, "5.15", False),
+ (True, "5.15.0", True),
+ (True, "5.15.1", True),
+ (True, "5.15.2", False),
(False, "5.13", False),
(False, "5.14", False),
- (False, "5.15", False),
+ (False, "5.15.0", False),
+ (False, "5.15.1", False),
+ (False, "5.15.2", False),
])
@utils.qt514
def test_prefers_color_scheme_dark(self, config_stub, monkeypatch, parser,