summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoofar <toofar@spalge.com>2023-11-12 12:56:54 +1300
committertoofar <toofar@spalge.com>2023-11-13 18:45:18 +1300
commitf83cf4f5044d606b3dc92fe818879083e20542ed (patch)
tree74af4ff264041038ac06453bb06dce822b492af2
parent399c72a9fb58d204357b39da8c1191dd002dfb55 (diff)
downloadqutebrowser-f83cf4f5044d606b3dc92fe818879083e20542ed.tar.gz
qutebrowser-f83cf4f5044d606b3dc92fe818879083e20542ed.zip
Handle PyQt WebEngine version strings being Optional
With PyQt6-WebEngine 6.6.0 some pointer return types are now wrapped in Optionals[]. In practice they should never be None, we've been relying on them being set for long enough. `qWebEngineVersion()` and `qWebEngineChromiumVersion()` now are typed as returning `Optional[str]`. In `from_api()` we can handle the `chromium_version` being null, so pass that through, but we are depending on the `qtwe_version` being set, so add an assert there. ref: https://github.com/qutebrowser/qutebrowser/pull/7990
-rw-r--r--qutebrowser/utils/version.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index 75df73ffa..a139d01c5 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -686,7 +686,7 @@ class WebEngineVersions:
return cls._CHROMIUM_VERSIONS.get(minor_version)
@classmethod
- def from_api(cls, qtwe_version: str, chromium_version: str) -> 'WebEngineVersions':
+ def from_api(cls, qtwe_version: str, chromium_version: Optional[str]) -> 'WebEngineVersions':
"""Get the versions based on the exact versions.
This is called if we have proper APIs to get the versions easily
@@ -796,8 +796,10 @@ def qtwebengine_versions(*, avoid_init: bool = False) -> WebEngineVersions:
except ImportError:
pass # Needs QtWebEngine 6.2+ with PyQtWebEngine 6.3.1+
else:
+ qtwe_version = qWebEngineVersion()
+ assert qtwe_version is not None
return WebEngineVersions.from_api(
- qtwe_version=qWebEngineVersion(),
+ qtwe_version=qtwe_version,
chromium_version=qWebEngineChromiumVersion(),
)