Add WebEngineVersions.chromium_major

This commit is contained in:
Florian Bruhin 2021-03-12 09:36:28 +01:00
parent 5a1b148e77
commit e833ee301b
3 changed files with 30 additions and 2 deletions

View File

@ -342,8 +342,7 @@ def _variant(versions: version.WebEngineVersions) -> Variant:
log.init.warning(f"Ignoring invalid QUTE_DARKMODE_VARIANT={env_var}")
if (versions.webengine == utils.VersionNumber(5, 15, 2) and
versions.chromium is not None and
versions.chromium.startswith('87.')):
versions.chromium_major == 87):
# WORKAROUND for Gentoo packaging something newer as 5.15.2...
return Variant.qt_515_3
elif versions.webengine >= utils.VersionNumber(5, 15, 3):

View File

@ -525,6 +525,7 @@ class WebEngineVersions:
webengine: utils.VersionNumber
chromium: Optional[str]
source: str
chromium_major: Optional[int] = dataclasses.field(init=False)
_CHROMIUM_VERSIONS: ClassVar[Dict[utils.VersionNumber, str]] = {
# Qt 5.12: Chromium 69
@ -562,11 +563,20 @@ class WebEngineVersions:
# 5.15.1: Security fixes up to 85.0.4183.83 (2020-08-25)
# 5.15.2: Updated to 83.0.4103.122 (~2020-06-24)
# Security fixes up to 86.0.4240.183 (2020-11-02)
# 5.15.3: Updated to 87.0.4280.144 (~2020-12-02)
# Security fixes up to 88.0.4324.150 (2021-02-04)
utils.VersionNumber(5, 15): '80.0.3987.163',
utils.VersionNumber(5, 15, 2): '83.0.4103.122',
utils.VersionNumber(5, 15, 3): '87.0.4280.144',
}
def __post_init__(self):
"""Set the major Chromium version."""
if self.chromium is None:
self.chromium_major = None
else:
self.chromium_major = int(self.chromium.split('.')[0])
def __str__(self) -> str:
s = f'QtWebEngine {self.webengine}'
if self.chromium is not None:

View File

@ -926,6 +926,25 @@ class TestWebEngineVersions:
def test_str(self, version, expected):
assert str(version) == expected
@pytest.mark.parametrize('version, expected', [
(
version.WebEngineVersions(
webengine=utils.VersionNumber(5, 15, 2),
chromium=None,
source='test'),
None,
),
(
version.WebEngineVersions(
webengine=utils.VersionNumber(5, 15, 2),
chromium='87.0.4280.144',
source='test'),
87,
),
])
def test_chromium_major(self, version, expected):
assert version.chromium_major == expected
def test_from_ua(self):
ua = websettings.UserAgent(
os_info='X11; Linux x86_64',