From 467b9a7d4a54e21f42d7992fecc827b5fb6db7cb Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 12 Oct 2025 13:16:54 +0200 Subject: [PATCH] Add site-specific quirk for gitlab.gnome.org Fixes #8509 --- doc/help/settings.asciidoc | 1 + .../browser/webengine/webenginesettings.py | 15 +++++++++++++++ qutebrowser/config/configdata.yml | 1 + 3 files changed, 17 insertions(+) diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index d25a71cb6..2160a15f9 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -2770,6 +2770,7 @@ Valid values: * +ua-google+ * +ua-googledocs+ + * +ua-gnome-gitlab+ * +js-whatsapp-web+ * +js-discord+ * +js-string-replaceall+ diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index 6680fa637..9f721fdcf 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -508,6 +508,20 @@ def _init_site_specific_quirks(): # "Safari/{webkit_version}") firefox_ua = "Mozilla/5.0 ({os_info}; rv:136.0) Gecko/20100101 Firefox/139.0" + # Needed for gitlab.gnome.org which blocks old Chromium versions outright, + # except when QtWebEngine/... is in the UA. + # + # We could further modify the UA to just "qutebrowser" or something so we don't get + # Anubis at all, but it looks like their Anubis triggers to more than just + # Mozilla/5.0 (also AppleWebKit/... and Chromium/... possibly?), so at that point + # I'm not sure if we can strip down the UA so much without breaking + # something in GitLab as well. + not_mozilla_ua = ( + "Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) " + "{qt_key}/{qt_version} {upstream_browser_key}/{upstream_browser_version_short} " + "Safari/{webkit_version}" + ) + 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 @@ -528,6 +542,7 @@ def _init_site_specific_quirks(): # to keep your account secure" error. # https://github.com/qutebrowser/qutebrowser/issues/5182 ("ua-google", "https://accounts.google.com/*", firefox_ua), + ("ua-gnome-gitlab", "https://gitlab.gnome.org/*", not_mozilla_ua), ] for name, pattern, ua in user_agents: diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 9d08d5740..9a8c04ff7 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -658,6 +658,7 @@ content.site_specific_quirks.skip: valid_values: - ua-google - ua-googledocs + - ua-gnome-gitlab - js-whatsapp-web - js-discord - js-string-replaceall