summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-03-11 12:27:25 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-03-11 14:17:19 +0100
commit1678cd67a4a0360eb3bc914b46f137d383467893 (patch)
treef1cc9da714064053350f58f218cdd581638cd64b
parent69101796d5f02a95f5d75ed134cd51d92e8aeb0a (diff)
downloadqutebrowser-1678cd67a4a0360eb3bc914b46f137d383467893.tar.gz
qutebrowser-1678cd67a4a0360eb3bc914b46f137d383467893.zip
Fix Chromium version handling with PyQt 5.15.4+
-rw-r--r--qutebrowser/utils/version.py19
-rw-r--r--tests/unit/utils/test_version.py15
2 files changed, 20 insertions, 14 deletions
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index a741a3584..e61d18448 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -611,11 +611,20 @@ class WebEngineVersions:
chromium_version = cls._CHROMIUM_VERSIONS.get(pyqt_webengine_version)
if chromium_version is not None:
return chromium_version
- # 5.14.2 -> 5.14
- minor_version = utils.VersionNumber(
- pyqt_webengine_version.majorVersion(),
- pyqt_webengine_version.minorVersion(),
- )
+
+ # 5.15 patch versions change their QtWebEngine version, but no changes are
+ # expected after 5.15.3.
+ v5_15_3 = utils.VersionNumber(5, 15, 3)
+ if v5_15_3 <= pyqt_webengine_version < utils.VersionNumber(6):
+ minor_version = v5_15_3
+ else:
+ # e.g. 5.14.2 -> 5.14
+ segments = pyqt_webengine_version.segments()[:2]
+ if segments[-1] == 0:
+ del segments[-1]
+
+ minor_version = utils.VersionNumber(*segments)
+
return cls._CHROMIUM_VERSIONS.get(minor_version)
@classmethod
diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py
index f846c91ac..886d50c91 100644
--- a/tests/unit/utils/test_version.py
+++ b/tests/unit/utils/test_version.py
@@ -956,6 +956,9 @@ class TestWebEngineVersions:
('5.14.2', '77.0.3865.129'),
('5.15.1', '80.0.3987.163'),
('5.15.2', '83.0.4103.122'),
+ ('5.15.3', '87.0.4280.144'),
+ ('5.15.4', '87.0.4280.144'),
+ ('5.15.5', '87.0.4280.144'),
])
def test_from_pyqt(self, qt_version, chromium_version):
expected = version.WebEngineVersions(
@@ -982,15 +985,9 @@ class TestWebEngineVersions:
versions = version.WebEngineVersions.from_pyqt(pyqt_webengine_version)
- if pyqt_webengine_version == '5.15.3':
- # Transient situation - we expect to get QtWebEngine 5.15.3 soon,
- # so this will line up again.
- assert versions.chromium == '87.0.4280.144'
- pytest.xfail("Transient situation")
- else:
- from qutebrowser.browser.webengine import webenginesettings
- webenginesettings.init_user_agent()
- expected = webenginesettings.parsed_user_agent.upstream_browser_version
+ from qutebrowser.browser.webengine import webenginesettings
+ webenginesettings.init_user_agent()
+ expected = webenginesettings.parsed_user_agent.upstream_browser_version
assert versions.chromium == expected