commit 8d3684e8c46309a9ef762f9e518fc427fdeb75e2
parent 8c4e3f2cc636360958cafd23adc1b22eacc98fb7
Author: Thomas Wisniewski <twisniewski@mozilla.com>
Date: Wed, 5 Nov 2025 18:20:15 +0000
Bug 1992923 - add an Android-only webcompat CSS intervention for godotfest.com; r=webcompat-reviewers,ksenia
Differential Revision: https://phabricator.services.mozilla.com/D271444
Diffstat:
3 files changed, 101 insertions(+), 0 deletions(-)
diff --git a/browser/extensions/webcompat/data/interventions.json b/browser/extensions/webcompat/data/interventions.json
@@ -5747,6 +5747,23 @@
}
]
},
+ "1992923": {
+ "label": "godotfest.com",
+ "bugs": {
+ "1992923": {
+ "issue": "broken-images",
+ "matches": ["*://godotfest.com/*"]
+ }
+ },
+ "interventions": [
+ {
+ "platforms": ["android"],
+ "content_scripts": {
+ "css": ["1992923-godotfest.com-fix-blur-effects.css"]
+ }
+ }
+ ]
+ },
"1993201": {
"label": "portal.pilot.ly",
"bugs": {
diff --git a/browser/extensions/webcompat/injections/css/1992923-godotfest.com-fix-blur-effects.css b/browser/extensions/webcompat/injections/css/1992923-godotfest.com-fix-blur-effects.css
@@ -0,0 +1,30 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * godotfest.com - Blur effects are disabled on Android
+ * Bug #1992923 - https://bugzilla.mozilla.org/show_bug.cgi?id=1992923
+ * WebCompat issue #41822 - https://webcompat.com/issues/41822
+ *
+ * The site appears to be intentionally disabling blur effects on Firefox for
+ * an unknown reason, with broken-looking fallbacks. Let's enable blur again.
+ */
+@supports (-moz-appearance: none) {
+ @media (hover: none) and (pointer: coarse) {
+ #background-blur,
+ #menu-blur {
+ display: revert !important;
+ }
+ .backdrop-blur,
+ .backdrop-blur-sm,
+ .backdrop-blur-2xl {
+ --tw-backdrop-blur: blur(var(--blur-2xl));
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,)
+ var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,) !important;
+ }
+ }
+ .talk-card__bg {
+ filter: var(--talk-bg-filter) !important;
+ }
+}
diff --git a/testing/webcompat/interventions/tests/test_1992923_godotfest_com.py b/testing/webcompat/interventions/tests/test_1992923_godotfest_com.py
@@ -0,0 +1,54 @@
+import pytest
+
+URL = "https://godotfest.com/talks"
+
+TOP_BAR_BLUR_CSS = "#menu-blur"
+HERO_CSS = ".talk-card__body"
+
+
+async def are_blurs_working(client):
+ # to test, we take a screenshot of the top menu bar, which ought to be blurred,
+ # and then hide its blur element and compare the after-screenshot. If they're the
+ # same, then the blur would not have actually been working.
+ await client.navigate(URL)
+
+ # hide SVGs and text which might interfere with the screenshot.
+ client.add_stylesheet(
+ """
+ * { color: transparent !important; }
+ svg { display: none; }
+ """
+ )
+
+ top_bar_blur = client.await_css(TOP_BAR_BLUR_CSS)
+ hero = client.await_css(HERO_CSS, is_displayed=True)
+
+ # scroll down to a point where the site enables the blur and something obvious is behind.
+ client.execute_script(
+ """
+ arguments[0].scrollIntoView({behavior: "instant", block: "start"});
+ """,
+ hero,
+ )
+
+ # now take a screenshot, remove the blur element, and compare.
+ await client.stall(0.5)
+ pre = client.find_css("body").screenshot()
+ client.execute_script("arguments[0].remove()", top_bar_blur)
+ await client.stall(0.5)
+ post = client.find_css("body").screenshot()
+ return pre != post
+
+
+@pytest.mark.only_platforms("android")
+@pytest.mark.asyncio
+@pytest.mark.with_interventions
+async def test_enabled(client):
+ assert await are_blurs_working(client)
+
+
+@pytest.mark.only_platforms("android")
+@pytest.mark.asyncio
+@pytest.mark.without_interventions
+async def test_disabled(client):
+ assert not await are_blurs_working(client)