diff options
author | toofar <toofar@spalge.com> | 2024-04-20 19:25:42 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-20 19:25:42 +1200 |
commit | 80931acab0cc63760dfc484820b783aaced439b6 (patch) | |
tree | aed9d0c3bc8d2b5408dd8a76af5bca6f8fde4f90 /qutebrowser/utils/version.py | |
parent | 91be21aede589a8cb15a5288eedd74ca56f11e7b (diff) | |
parent | 52106c383b41ea7629399f75059bbcba9abb1ba6 (diff) | |
download | qutebrowser-80931acab0cc63760dfc484820b783aaced439b6.tar.gz qutebrowser-80931acab0cc63760dfc484820b783aaced439b6.zip |
Merge pull request #8139 from qutebrowser/feat/7187_chromium_security_patch_in_version
Show chromium security patch version in :version
Diffstat (limited to 'qutebrowser/utils/version.py')
-rw-r--r-- | qutebrowser/utils/version.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py index a4bb893f6..32d5357db 100644 --- a/qutebrowser/utils/version.py +++ b/qutebrowser/utils/version.py @@ -535,6 +535,7 @@ class WebEngineVersions: webengine: utils.VersionNumber chromium: Optional[str] source: str + chromium_security: Optional[str] = None chromium_major: Optional[int] = dataclasses.field(init=False) _CHROMIUM_VERSIONS: ClassVar[Dict[utils.VersionNumber, str]] = { @@ -638,6 +639,8 @@ class WebEngineVersions: s = f'QtWebEngine {self.webengine}' if self.chromium is not None: s += f', based on Chromium {self.chromium}' + if self.chromium_security is not None: + s += f', with security patches up to {self.chromium_security} (plus any distribution patches)' if self.source != 'UA': s += f' (from {self.source})' return s @@ -695,7 +698,12 @@ class WebEngineVersions: return cls._CHROMIUM_VERSIONS.get(minor_version) @classmethod - def from_api(cls, qtwe_version: str, chromium_version: Optional[str]) -> 'WebEngineVersions': + def from_api( + cls, + qtwe_version: str, + chromium_version: Optional[str], + chromium_security: Optional[str] = None, + ) -> 'WebEngineVersions': """Get the versions based on the exact versions. This is called if we have proper APIs to get the versions easily @@ -705,6 +713,7 @@ class WebEngineVersions: return cls( webengine=parsed, chromium=chromium_version, + chromium_security=chromium_security, source='api', ) @@ -805,11 +814,20 @@ def qtwebengine_versions(*, avoid_init: bool = False) -> WebEngineVersions: except ImportError: pass # Needs QtWebEngine 6.2+ with PyQtWebEngine 6.3.1+ else: + try: + from qutebrowser.qt.webenginecore import ( + qWebEngineChromiumSecurityPatchVersion, + ) + chromium_security = qWebEngineChromiumSecurityPatchVersion() + except ImportError: + chromium_security = None # Needs QtWebEngine 6.3+ + qtwe_version = qWebEngineVersion() assert qtwe_version is not None return WebEngineVersions.from_api( qtwe_version=qtwe_version, chromium_version=qWebEngineChromiumVersion(), + chromium_security=chromium_security, ) from qutebrowser.browser.webengine import webenginesettings |