diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py index cf08dc661..484f6cef9 100644 --- a/qutebrowser/config/qtargs.py +++ b/qutebrowser/config/qtargs.py @@ -175,6 +175,9 @@ def _qtwebengine_args( from qutebrowser.browser.webengine import darkmode for switch_name, values in darkmode.settings().items(): + # If we need to use other switches (say, --enable-features), we might need to + # refactor this so values still get combined with existing ones. + assert switch_name in ['dark-mode-settings', 'blink-settings'], switch_name yield f'--{switch_name}=' + ','.join(f'{k}={v}' for k, v in values) enabled_features, disabled_features = _qtwebengine_features(feature_flags) diff --git a/tests/unit/config/test_qtargs.py b/tests/unit/config/test_qtargs.py index e69437d00..87c0eb77d 100644 --- a/tests/unit/config/test_qtargs.py +++ b/tests/unit/config/test_qtargs.py @@ -448,22 +448,32 @@ class TestWebEngineArgs: expected = ['--disable-features=InstalledApp'] if has_workaround else [] assert disable_features_args == expected - def test_blink_settings(self, config_stub, monkeypatch, parser): + @pytest.mark.parametrize('variant, expected', [ + ( + 'qt_515_2', + ['--blink-settings=forceDarkModeEnabled=true,forceDarkModeImagePolicy=2'], + ), + ( + 'qt_515_3', + [ + '--blink-settings=forceDarkModeEnabled=true', + '--dark-mode-settings=ImagePolicy=2', + ] + ), + ]) + def test_dark_mode_settings(self, config_stub, monkeypatch, parser, + variant, expected): from qutebrowser.browser.webengine import darkmode - monkeypatch.setattr(qtargs.objects, 'backend', - usertypes.Backend.QtWebEngine) - monkeypatch.setattr(darkmode, '_variant', - lambda: darkmode.Variant.qt_515_2) + monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine) + monkeypatch.setattr(darkmode, '_variant', lambda: darkmode.Variant[variant]) config_stub.val.colors.webpage.darkmode.enabled = True parsed = parser.parse_args([]) args = qtargs.qt_args(parsed) - expected = ('--blink-settings=forceDarkModeEnabled=true,' - 'forceDarkModeImagePolicy=2') - - assert expected in args + for arg in expected: + assert arg in args class TestEnvVars: