diff options
author | toofar <toofar@spalge.com> | 2023-10-14 15:23:13 +1300 |
---|---|---|
committer | toofar <toofar@spalge.com> | 2023-10-14 15:23:13 +1300 |
commit | 142f019c7a262e95eb1957ad0766c7a51621109b (patch) | |
tree | 4dbd9d211dd202b6fa0dc34e95d94480322ecbeb | |
parent | fcc6062e5be37b9bad832f45da374781b3d1cf16 (diff) | |
parent | a7a2420f02661020bcdea8728a1f846a868f4d56 (diff) | |
download | qutebrowser-142f019c7a262e95eb1957ad0766c7a51621109b.tar.gz qutebrowser-142f019c7a262e95eb1957ad0766c7a51621109b.zip |
Merge branch 'update_slack_ua_quirk'
-rw-r--r-- | doc/changelog.asciidoc | 2 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginesettings.py | 26 |
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), |