This commit is contained in:
Florian Bruhin 2020-10-19 14:26:41 +02:00
parent 485f67b124
commit c473a5063f
7 changed files with 27 additions and 19 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]:

View File

@ -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'),
]

View File

@ -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'

View File

@ -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