diff options
author | toofar <toofar@spalge.com> | 2023-10-14 14:45:36 +1300 |
---|---|---|
committer | toofar <toofar@spalge.com> | 2023-10-14 15:06:05 +1300 |
commit | 2edce1244ae9703950b9bb2a14b6d42c73bbd1a0 (patch) | |
tree | 5ce6201847bd9fa3315c04aea7a91691bb1aa3f8 | |
parent | fcc6062e5be37b9bad832f45da374781b3d1cf16 (diff) | |
download | qutebrowser-2edce1244ae9703950b9bb2a14b6d42c73bbd1a0.tar.gz qutebrowser-2edce1244ae9703950b9bb2a14b6d42c73bbd1a0.zip |
Make "new_chrome" UA quirk a bit clever
We only want to be faking a newer chrome version, if we are already on a
newer one, we don't want to be faking an older one!
Another scenario is that we might want to fake a perpetually newer
version for some site. But that seems like a very problematic scenario
and I hope that never comes up.
-rw-r--r-- | qutebrowser/browser/webengine/webenginesettings.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index fb5403ae2..07324538f 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -430,12 +430,21 @@ def _init_site_specific_quirks(): "AppleWebKit/{webkit_version} (KHTML, like Gecko) " "{upstream_browser_key}/{upstream_browser_version} " "Safari/{webkit_version}") - new_chrome_ua = ("Mozilla/5.0 ({os_info}) " - "AppleWebKit/537.36 (KHTML, like Gecko) " - "Chrome/99 " - "Safari/537.36") firefox_ua = "Mozilla/5.0 ({os_info}; rv:90.0) Gecko/20100101 Firefox/90.0" + def maybe_newer_chrome_ua(at_least_version): + """Return a new UA if our current chrome version isn't at least at_least_version.""" + current_chome_version = version.qtwebengine_versions().chromium_major + if current_chome_version >= at_least_version: + return None + + return ( + "Mozilla/5.0 ({os_info}) " + "AppleWebKit/537.36 (KHTML, like Gecko) " + f"Chrome/{at_least_version} " + "Safari/537.36" + ) + user_agents = [ # Needed to avoid a ""WhatsApp works with Google Chrome 36+" error # page which doesn't allow to use WhatsApp Web at all. Also see the @@ -453,10 +462,12 @@ def _init_site_specific_quirks(): # September 2020: Qt 5.12 works, but Qt <= 5.11 shows the error. # FIXME:qt6 Still needed? # https://github.com/qutebrowser/qutebrowser/issues/4669 - ("ua-slack", 'https://*.slack.com/*', new_chrome_ua), + ("ua-slack", 'https://*.slack.com/*', maybe_newer_chrome_ua(99)), ] for name, pattern, ua in user_agents: + if not ua: + continue if name not in config.val.content.site_specific_quirks.skip: config.instance.set_obj('content.headers.user_agent', ua, pattern=urlmatch.UrlPattern(pattern), |