summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoofar <toofar@spalge.com>2023-10-14 15:23:13 +1300
committertoofar <toofar@spalge.com>2023-10-14 15:23:13 +1300
commit142f019c7a262e95eb1957ad0766c7a51621109b (patch)
tree4dbd9d211dd202b6fa0dc34e95d94480322ecbeb
parentfcc6062e5be37b9bad832f45da374781b3d1cf16 (diff)
parenta7a2420f02661020bcdea8728a1f846a868f4d56 (diff)
downloadqutebrowser-142f019c7a262e95eb1957ad0766c7a51621109b.tar.gz
qutebrowser-142f019c7a262e95eb1957ad0766c7a51621109b.zip
Merge branch 'update_slack_ua_quirk'
-rw-r--r--doc/changelog.asciidoc2
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py26
2 files changed, 20 insertions, 8 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index 8c305350d..cec2f2b84 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -56,6 +56,8 @@ Fixed
canvas feature which defaults to enabled on affected Qt versions. (#7489)
- The download dialog should no longer freeze when browsing to directories
with many files. (#7925)
+- The app.slack.com User-Agent quirk now targets chromium 112 on Qt versions
+ lower than 6.6.0 (previously it always targets chromium 99) (#7951)
[[v3.0.0]]
v3.0.0 (2023-08-18)
diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py
index fb5403ae2..d0b6b5beb 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
@@ -450,13 +459,14 @@ def _init_site_specific_quirks():
# Needed because Slack adds an error which prevents using it relatively
# aggressively, despite things actually working fine.
- # 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),
+ # October 2023: Slack claims they only support 112+. On #7951 at least
+ # one user claims it still works fine on 108 based Qt versions.
+ ("ua-slack", 'https://*.slack.com/*', maybe_newer_chrome_ua(112)),
]
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),