fix: narrow logo replacement to branding containers only, stop replacing emojis/avatars
All checks were successful
Build & Release / build (push) Successful in 2m58s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
MiTHRAL 2026-04-22 01:28:38 -04:00
parent 4f07615b13
commit fa4c4db944

View file

@ -219,14 +219,10 @@ function injectBranding(wc: Electron.WebContents) {
function isLogoImg(img) { function isLogoImg(img) {
var src = img.getAttribute('src') || ''; var src = img.getAttribute('src') || '';
var alt = (img.getAttribute('alt') || '').toLowerCase(); var alt = (img.getAttribute('alt') || '').toLowerCase();
// explicit brand name in src or alt
if (src.includes('revolt') || src.includes('stoat')) return true; if (src.includes('revolt') || src.includes('stoat')) return true;
if (alt === 'revolt' || alt === 'stoat') return true; if (alt === 'revolt' || alt === 'stoat') return true;
// any asset image whose alt contains logo/brand keywords // only match within dedicated branding containers — never generic headers
if (/revolt|stoat|logo/i.test(alt)) return true; var parent = img.closest('[class*="wordmark"],[class*="Wordmark"],[class*="auth"],[class*="login"],[class*="splash"],[class*="Landing"]');
// hashed asset paths with no alt — likely a logo if it's an svg or small png
// and sits inside a known logo/brand container
var parent = img.closest('[class*="logo"],[class*="Logo"],[class*="brand"],[class*="Brand"],[class*="wordmark"],[class*="Wordmark"],[class*="header"],[class*="auth"],[class*="login"],[class*="splash"]');
if (parent && /\\.(svg|png|webp)/.test(src)) return true; if (parent && /\\.(svg|png|webp)/.test(src)) return true;
return false; return false;
} }