Houve um dia, não muito tempo atrás, em que uma atualização do navegador Google Chrome deixou qualquer página com um CodePen Embed lançando uma grande pilha de erros vermelhos de JavaScript no console. Não é o ideal, obviamente.
A mudança estava relacionada à forma como o navegador lida allow atributos em iframes (ou seja, ). CodePen estava calculando os valores apropriados dentro de um iframe para um aninhado iframe. Isso deve ter sido uma espécie de questão de segurança, pois agora esses valores precisam estar presentes no fora iframe também.
Documentamos tudo isso em uma postagem do blog, então esperamos conseguir alguma atenção do Chrome sobre isso, e também de outros fabricantes de navegadores, já que isso afeta a todos nós.
E postei nas velhas redes sociais:
Muito obrigado a Bramus Van Damme que viu isso, fez a triagem no Chrome e obteve uma resolução em um dia:
Eu penso o patch é uma grande mudança, então tiro o chapéu para todos os envolvidos por fazê-lo tão rapidamente. Já está em Canary e não sei quando chegará ao estábulo, mas com certeza será bom. Segue-se como o Safari está fazendo coisas onde valores que não são compreendidos são simplesmente ignorados (o que achamos bom e alinhado com o modo como o HTML normalmente funciona).
Felizmente conseguimos mitigar o problema um pouco até então. Para maioria Canetas Embutidas, uma é carregado na página que o incorpora e criamos dinamicamente o para você. Isso é ótimo, pois facilita a criação de um substituto acessível e dá acesso a recursos de API para incorporações. Conseguimos aumentar esse script para fazer uma pequena detecção do agente do usuário do navegador e aplicar o conjunto correto de allow atributos no iframe, para evitar os erros de JavaScript que estávamos vendo.
Mas aí está o problema: preferimos não fazer nenhuma detecção de agente de usuário.
Se pudéssemos colocar todos o possível allow atributos que queremos lá, e não ficar muito preocupado se algum navegador específico não suportar nenhum valor específico, isso seria o ideal. Simplesmente não podemos ter erros assustadores no console, por preocupação com nossos usuários que podem não entendê-los.
Onde estamos na saga agora é que:
- Estamos aguardando que a mudança no Chrome fique estável.
- Esperamos que o Safari continue como está.
- AH, OI FIREFOX.
Sobre esse último ponto, se colocarmos todos os allow atributos que gostaríamos de ter em um no Firefox, também somos bombardeados pelo console. Desta vez não com erros vermelhos, mas com avisos amarelos.
Então, sim, oi Firefox, se você também não pudesse exibir esses avisos (a menos que um URL de relatório esteja configurado), seria ótimo. Seríamos um site a menos dependendo da detecção do agente do usuário.