summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoofar <toofar@spalge.com>2023-10-14 14:45:36 +1300
committertoofar <toofar@spalge.com>2023-10-14 15:06:05 +1300
commit2edce1244ae9703950b9bb2a14b6d42c73bbd1a0 (patch)
tree5ce6201847bd9fa3315c04aea7a91691bb1aa3f8
parentfcc6062e5be37b9bad832f45da374781b3d1cf16 (diff)
downloadqutebrowser-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.py21
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),