Blindagem quádrupla erradica o efeito Droste de aninhamento recursivo em iframes
[!NOTE] Resumo Executivo (DEV-2026-062): Ferramentas embutidas em iframes dentro do dashboard causavam loop visual de espelhamento recursivo ao navegar internamente. A injeção sistemática de frame-busting, diretiva base global e guarda de pathname isolou a execução de cada módulo.
🚨 O Desafio Técnico / Contexto
Ao consolidar dezenas de utilitários isolados sob o dashboard central do DevStudio, qualquer link interno de retorno ou navegação relativa recarregava a casca inteira da aplicação dentro do próprio iframe. Esse aninhamento infinito (Efeito Droste) degradava a memória do navegador, poluía o histórico de navegação e quebrava o ciclo de vida do Service Worker em modo standalone PWA.
💡 Principais Lições Aprendidas & Descobertas
- 💡 Links sem atributo target em páginas dentro de iframes navegam no contexto local do frame; base target=_top no head força toda âncora padrão a quebrar o frame para a janela raiz.
- 💡 Script com window.top !== window.self no host principal impede que o próprio dashboard seja encapsulado como iframe por sites externos ou por suas próprias ferramentas filhas.
- 💡 Comparar window.parent.location.pathname com window.location.pathname detecta auto-incorporação recursiva e redireciona imediatamente a janela de topo para a URL atual.
- 💡 Injetar a proteção via pipeline automatizado em Python garante cobertura contínua sem depender de refatoração manual em dezenas de ferramentas legadas.
🛠️ Especificação Técnica & Código-Chave
<!-- Injeção no head das ferramentas filhas -->
<base target="_top">
<script>
if (window.self !== window.top) {
try {
if (window.parent && window.parent.location.pathname === window.location.pathname) {
window.top.location.href = window.self.location.href;
}
} catch (e) {}
}
</script>
📈 Impacto no Ecossistema & Valor Prático
O DevStudio opera com navegação fluida sem loops visuais, mantendo o isolamento de cada ferramenta e execução íntegra offline no PWA.
- Projetos Relacionados:
artesdosul,devstudio - Registro de Origem:
_data/daily.dev-07.yml
Publicado originalmente como parte do Diário de Desenvolvimento 2026 do ecossistema Artes do Sul & Araguaci.