Os Pecados Secretos dos Navegadores que Mantêm a Web Viva (e Por Que Isso Importa)
O Segredo Sujo da Web
Imagine descobrir que os principais navegadores carregam códigos especiais para sites específicos. Não é erro nem gambiarra. É uma funcionalidade deliberada que altera como as páginas são exibidas.
No TikTok, seu navegador age de um jeito. No seu site pessoal, de outro. O mesmo vale para Netflix, Instagram, Amazon Prime Video e até SeatGuru, aquele comparador de assentos de avião.
Não é teoria da conspiração. O código está aberto. No WebKit do Safari, o arquivo Quirks.cpp tem milhares de linhas com ajustes por domain. No Firefox, digite about:compat e veja a lista – dá pra ativar ou desativar. O Chrome finge que nada disso existe, o que diz muito sobre poder de mercado.
As Guerras da Compatibilidade
Abra o Firefox e busque about:compat. A tela lista sites famosos com problemas crônicos. Cada item é um remédio sob medida: CSS injetado, JavaScript alterado ou user agent falso.
No Safari, é ainda mais direto. No GitHub, o Quirks.cpp revela a verdadeira face da web – não a idealizada pelos padrões, mas a que roda na prática.
Pega Facebook, X (ex-Twitter) e Reddit. Há um comentário explícito:
"Facebook, X e Reddit pausam vídeos
<video>que saem da viewport, mesmo em modo PiP."
Resultado? O Safari detecta esses domains e corrige o Picture-in-Picture. Gigantes com times de engenharia enormes. Podem consertar sozinhos. Mas o browser faz o trabalho para bilhões de usuários.
Sobre SeatGuru:
"FIXME: Remover se o SeatGuru ajustar o site."
Ou seja: tentamos contato, sem resposta. Aí veio o patch direto no engine.
O Efeito Dominó do Chrome
Aqui entra o pior – e o mais frustrante para quem sonha com padrões web.
Chrome manda no mercado. Devs criam para ele, onde estão 65% dos usuários. Sites rodam liso no Chrome. Bugs em Safari ou Firefox? Culpa do browser, não do site. Usuários migram para Chrome. Ciclo vicioso.
Pior: features do Chrome viram "padrão" na marra. Ele lança algo novo. Devs adotam. Safari e Firefox ou copiam (gasta tempo) ou criam quirks por domain.
No WebKit, há overrides de user agent. Safari finge ser Chrome para Amazon Video e streams variados. Esses sites checam o browser e punem os "outros". Solução? Mentira descarada.
Exemplo de código real:
auto chromeUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"_s;
Safari com user agent falso de Chrome. Firefox faz igual. Sites anti-Chrome? Browsers se disfarçam e seguem em frente.
Loop infernal: devs otimizam para Chrome, usuários não-Chrome culpam o browser, domínio reforçado.
Mais que Visual: Mudanças Profundas
Não são só ajustes estéticos. Browsers mudam scroll, eventos touch, cálculos de viewport e até MIME types de imagens – tudo por domain.
Nos últimos commits do Quirks.cpp: imagens de plantas do Zillow desalinhadas, TikTok pedindo "atualize o browser", Reels do Instagram redimensionando mal, botões da Netflix fechando popovers errados, Twitch pausando PiP ao trocar aba, Amazon Prime Video travando no Safari.
Cada caso, um fix específico. Milhares de linhas para tapar furos de sites gigantes.
Lição para Seu Projeto
Se você desenvolve apps web, encare a realidade: teste em múltiplos browsers. Não por idealismo, mas porque eles dão passe livre a concorrentes.
A plataforma web vira pragmatismo puro. Browsers se tornam app-specific, com patches para sites quebrados em vez de cobrar fixes.
Boa notícia para startups pequenas: improvável ganhar quirk próprio. Mas cresça mal otimizado e pode virar alvo.
Isso reforça por que padrões importam. Decisões do Chrome ecoam no ecossistema todo. O que ele lança define o que todos seguem – e testam.
A Verdade Nua e Crua
A web não é justa. Sites grandes ganham tratamento VIP nos engines. Mas prova a força da plataforma: browsers fazem de tudo para manter as coisas rodando, mesmo com código inchado por domain.
Não é bonito. Não é o sonho dos comitês de padrões. É a web real.
Próxima vez que um site quebra no Firefox mas voa no Chrome, pode ser resquício disso. Para criar cross-browser: evite browser sniffing, não assuma Chrome como norma, teste em devices reais.
Esses quirks escondidos mostram uma web colada com engenharia esperta e patches domain-specific. Funciona. E é o que temos.