Resolva problemas comuns com tokens de teste em metatags, cabeçalhos e scripts.
Lista de verificação
Para resolver problemas de um teste de origem, use os links fornecidos para cada um dos problemas abaixo.
Faça um teste
As demonstrações abaixo mostram cada uma das maneiras de fornecer um token de teste de origem e acessar um recurso de teste:
- ot-meta.glitch.me: token em uma metatag
origin-trial
- ot-header.glitch.me: token em um cabeçalho de resposta
Origin-Trial
. - ot-3p.glitch.me: token injetado por um script de terceiros
- ot-iframe.glitch.me: recurso de teste de origem acessado em um iframe
- ot-iframe-3p.glitch.me: exemplos de iframes de origem cruzada
Usar o Chrome DevTools para verificar tokens
A partir do Chrome 93, o DevTools oferece informações sobre o teste de origem no painel "Application" para o frame selecionado.
Expanda o frame superior para inspecionar os tokens de teste de origem disponíveis para um subframe. Por exemplo, na página de demonstração em ot-iframe.glitch.me, é possível ver que a página no iframe fornece um token.
- Status do token: se a página tem um token válido. Para alguns testes de origem, pode haver outros fatores, como restrições geográficas, que significam que o recurso de teste de origem não está disponível, apesar da presença de um token válido. Os códigos de status do Chrome DevTools explicam o significado de cada um dos códigos para testes de origem.
- Origem: a origem da Web registrada para o token.
- Prazo de validade: a data/hora máxima (mais recente) de validade possível do token, que normalmente corresponde ao final do teste. Isso não é igual à data de validade para o token exibido em Meus registros, que mostra por quanto tempo o token é válido e pode ser estendido.
- Restrição de uso: limites de uso, que podem ser definidos para alguns testes.
- Terceiro: indica se a correspondência de terceiros está ativada para o token. Esse recurso está disponível para alguns testes de origem, em que um recurso precisa ser acessado em vários sites usando scripts de terceiros.
- Match Sub-Domains: indica se a correspondência de subdomínio está ativada para o token. Isso permite que um recurso de teste de origem seja testado em vários subdomínios de uma origem, sem exigir um token diferente para cada subdomínio.
O Chrome DevTools vai mostrar um aviso ao lado do nome do teste se ele não estiver disponível para o usuário atual, se o token tiver expirado ou se houver outras restrições.
Códigos de status das Chrome DevTools
Expirado: o token expirou. O token precisará ser renovado para gerar um novo com uma nova data de validade.
Código-fonteFeatureDisabled: o teste está desativado para uso.
Código-fonteFeatureDisabledForUser: esse token foi designado como desativado para o usuário atual por uma restrição de uso alternativa. Consulte a seção "Exceções do subconjunto de usuários" do documento de design.
Código-fonte 1
Código-fonte 2Não segura: a origem da solicitação é não segura, e o teste não está ativado para origens não seguras. Conforme explicado no código do validador de tokens de teste de origem: 'Para tokens de terceiros, a origem atual e a origem do script precisam ser seguras. Devido à correspondência de subdomínio, a origem do token pode não ser uma correspondência exata para uma das origens de script fornecidas, e o resultado não indica qual origem específica foi correspondida. Isso significa que não se trata de uma pesquisa direta para encontrar a origem do script adequada. Para evitar a repetição de todas as comparações de origem, há atalhos que dependem de quantas origens de script foram fornecidas. É preciso ter pelo menos um, ou o token de terceiros não será validado.'
Código-fonteInvalidSignature: o token tem uma assinatura inválida ou com formato incorreto.
Código-fonteMalformado: o token está incorreto e não pode ser analisado.
Código-fonte
NotSupported: o teste de origem definido pelo token não é compatível com o incorporador do Chromium: um navegador como Chrome ou Edge, um WebView ou algum outro user agent.
Código-fonteSucesso: o token está bem formado, não expirou, corresponde a um recurso de teste de origem e foi solicitado de uma origem esperada.
Código-fonteTokenDisabled: o token foi marcado como desativado e não pode ser usado.
Código-fonteTrialNotAllowed: o teste de origem não está disponível para o usuário atual.
Código-fonteUnknownTrial: o token especifica um nome de recurso que não corresponde a nenhum teste conhecido.
Código-fonteWrongOrigin: a origem da solicitação não corresponde à especificada no token. Isso pode incluir o esquema, o nome do host ou a porta. Esse status também será exibido se um token de terceiros for fornecido em um cabeçalho HTTP, uma metatag ou um script inline, em vez de um arquivo JavaScript externo.
Código-fonteWrongVersion: versão errada do token. No momento, apenas as versões 2 e 3 do token são compatíveis.
Código-fonte
Não está funcionando. 🤔
Se o teste de origem não estiver funcionando como esperado, verifique se você atendeu às condições a seguir.
Você está testando no Chrome, não no Chromium ou em outro navegador
Os testes de origem do Chrome foram criados para funcionar com usuários do Chrome. Não confie em tokens de teste de origem do Chrome para ativar recursos de teste em outros navegadores, incluindo o Chromium e outros navegadores baseados no Chromium. Isso acontece porque os testes de origem do Chrome são específicos para recursos disponibilizados no Chrome para experimentação.
Os testes de origem também estão disponíveis para o Firefox e o Microsoft Edge. A inscrição em um teste de origem do Firefox ou Edge não ativa um recurso no Chrome.
O teste de origem está ativado para as versões do Chrome que acessam seu site.
O acesso aos testes é limitado a versões específicas do Chrome. Em alguns casos, isso pode significar que um recurso de teste está disponível apenas para canais pré-Stable do Chrome: Canary, Dev e Beta.
É possível verificar a disponibilidade da versão na página de registro do teste:
Você pode conferir a versão do Chrome que está usando em chrome://version.
O teste de origem não é desativado pelas configurações do Chrome
Se um usuário individual informar que um recurso não está funcionando para ele, verifique se o recurso não está
desativado nas configurações do Chrome. Por exemplo, os recursos do Sandbox de privacidade
podem ser desativados na página chrome://settings/privacySandbox
.
As palavras-chave e a sintaxe estão corretas
Use as palavras-chave e a sintaxe adequadas para tokens de teste de origem.
Para uso próprio, um token pode ser fornecido em uma metatag origin-trial
:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Como alternativa, um token pode ser fornecido em um cabeçalho de resposta Origin-Trial
. Confira um exemplo de uso do
Express no Node.js:
app.use(function(req, res, next) {
res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
next();
});
Os tokens também podem ser fornecidos usando JavaScript:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
A origem do token próprio corresponde à origem da página
Verifique se o valor Origem da Web selecionado ao se inscrever em um teste corresponde à origem da página que tem a metatag ou o cabeçalho que fornece o token.
Por exemplo, se você selecionou https://example.com
como a Origem da Web:
Você pode receber um valor de token como este:
Verifique se esse valor corresponde ao token usado na página em que você está solucionando o problema.
Para um token fornecido em uma metatag, verifique o HTML:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Para um token fornecido em um cabeçalho, verifique o valor do token no painel de rede do Chrome DevTools em Cabeçalhos de resposta:
O token próprio é veiculado a partir da origem que o utiliza.
Para permitir o acesso a um recurso de teste de origem para o código incluído em uma página veiculada pela sua origem, forneça um token de teste em uma metatag, um cabeçalho ou pelo JavaScript da mesma origem.
A origem registrada para um token precisa corresponder à origem que o veicula.
A origem do token de terceiros corresponde à origem do script
Você pode se inscrever para participar de um teste de origem de scripts injetados em outras origens.
Por exemplo, se você quiser que os scripts veiculados de javascript-library.example
participem de um teste de origem, registre um token com correspondência de terceiros para javascript-library.example
.
O valor de origem de um token de terceiros precisa corresponder à origem do script que o injeta.
O script de terceiros usa um token de terceiros
Não é possível ativar um script de terceiros para participar de um teste de origem no seu site simplesmente registrando um token para a origem, e não para o script.
Os scripts de terceiros precisam usar tokens com a correspondência de terceiros ativada, injetada pelo próprio script (não incluída em uma metatag ou cabeçalho no seu site) usando um código como este:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
O token de terceiros é fornecido por um script externo, não por uma metatag, um cabeçalho HTTP ou um script inline
Os tokens de terceiros são validados em relação à origem do script que os injetou, mas scripts
in-line e tags <meta>
em marcação estática não têm uma origem (ou seja, um URL de origem).
Isso significa que um token de terceiros precisa ser fornecido por um script externo, não em uma tag <meta>
ou em um script inline. Não importa se o script externo que injeta o token vem da mesma origem que a página que o contém ou de uma origem diferente, desde que ela corresponda a uma origem registrada no teste.
Confira uma demonstração em ot-iframe-3p.glitch.me.
O acesso ao recurso de teste de origem tem suporte ao método usado para fornecer um token de teste.
Alguns tipos de acesso a recursos de teste de origem exigem que você forneça um token de teste de uma maneira específica.
Por exemplo, a única maneira de ativar o acesso de teste de origem para service workers e workers compartilhados é
fornecer um token em um cabeçalho Origin-Trial
.
A correspondência de subdomínio está ativada para um token usado em um subdomínio
Se um recurso de teste de origem não estiver funcionando em algumas páginas do seu site, verifique se os tokens estão configurados corretamente para os subdomínios que os veiculam.
Ao se inscrever em um teste de origem, você pode escolher corresponder a todos os subdomínios da origem:
Também é possível fazer correspondência de subdomínios para tokens de terceiros:
Os tokens de subdomínio não serão emitidos para origens na lista de sufixos públicos. Por exemplo, não é possível registrar uma origem como https://appspot.com ou https://github.io, mas é possível registrar-se para domínios dessa origem, como https://example.appspot.com ou https://example.github.io.
O token ainda é válido
Os tokens são válidos por seis semanas após serem criados. Além disso, você precisa enviar feedback para estender a data de validade. O guia de testes de origem para desenvolvedores da Web explica como garantir que seu token seja válido para um teste de origem inteiro.
É possível verificar se há tokens ativos na página "Minhas inscrições" dos testes de origem do Chrome:
O Chrome DevTools mostra o status Success
se o token ainda for válido:
Se o token tiver expirado, o DevTools vai mostrar o status Expired
, e a seção Expired Tokens vai aparecer na página "My Registrations".
O teste de origem não terminou
É possível conferir a data de término de um teste de origem na página de registro:
Para os testes que terminaram, o DevTools vai mostrar algo assim:
Você vai receber e-mails automáticos quando o feedback for necessário ou quando um token estiver prestes a expirar, mas não quando o período de teste acabar.
O teste de origem está disponível para o usuário atual
Alguns testes de origem não estão disponíveis para determinados usuários, mesmo que um token válido seja fornecido.
Se o teste não estiver disponível para o usuário atual, o Chrome DevTools vai mostrar um aviso TrialNotAllowed
:
Informações sobre restrições de uso e disponibilidade serão fornecidas para cada teste de origem.
Como acontece com qualquer recurso de plataforma da Web, use a detecção de recursos para confirmar se um recurso de teste de origem é compatível antes de usá-lo.
As restrições de uso do teste do Origin não foram excedidas
Por padrão, um recurso de teste de origem será ativado em qualquer página que tenha um token válido para o teste.
No entanto, exceto em casos raros, o uso do teste de origem é limitado a, no máximo, 0,5% de todos os carregamentos de página do Chrome. O recurso de teste de origem será desativado se o uso total por todos os usuários do Chrome exceder esse valor. O DevTools vai mostrar o status do token como desativado.
Não há limites de uso para testes de descontinuação, já que eles não introduzem novos recursos e, portanto, não representam um risco de tornar uma proporção significativa da Web dependente de um recurso de teste.
Alguns testes também oferecem uma opção para limitar o uso, o que significa que os recursos do teste de origem serão desativados para alguns usuários. Essa opção fica disponível na página de registro de um teste de origem que a oferece:
Se você notar que o acesso dos usuários a um recurso de teste de origem está abaixo do esperado, verifique se o "Limite padrão" está selecionado.
Os iFrames fornecem os próprios tokens
Para permitir o acesso a um recurso de teste de origem, um iframe precisa fornecer um token em uma metatag, um cabeçalho HTTP ou programaticamente. Os iframes não herdam o acesso aos recursos ativados nas páginas em que estão.
ot-iframe.glitch.me demonstra o acesso a um recurso de teste de origem em um iframe. ot-iframe-3p.glitch.me fornece vários exemplos de iframes entre origens.
As políticas de permissões estão configuradas corretamente
Alguns recursos de teste de origem podem ser afetados por um cabeçalho Permissions-Policy
(anteriormente conhecido como cabeçalho Feature-Policy
). Verifique isso na seção Intents de experimento do recurso de teste ou na documentação do desenvolvedor para o recurso em web.dev ou developer.chrome.com/blog (links em inglês).
Verifique se o recurso que você está tentando acessar não está bloqueado por uma diretiva
Permissions-Policy
. Você pode verificar os cabeçalhos de resposta no painel "Network" do Chrome DevTools e conferir a
lista completa de recursos permitidos no painel "Application".
E quanto aos workers?
Os recursos de testes de origem podem ser disponibilizados para service workers, workers compartilhados e workers
dedicados. No entanto, a única maneira de permitir o acesso de service workers e workers compartilhados é fornecer
um token em um cabeçalho Origin-Trial
.
Os workers dedicados herdam o acesso aos recursos ativados pelo documento pai.
O token é fornecido antes de o recurso ser acessado
Um token de teste de origem precisa ser fornecido antes de acessar um recurso de teste. Por exemplo, se uma página fornece um token via JavaScript, verifique se o código para fornecer o token é executado antes do código que tenta acessar o recurso de teste.
Demonstrações do teste de origem
- Token em uma metatag
- Token em um cabeçalho
- Recurso acessado em um iframe
- Token injetado pelo script de terceiros
- ot-iframe-3p.glitch.me: exemplos de iframes de origem cruzada
Saiba mais
- Começar a usar os testes de origem do Chrome
- Testes de origem de terceiros
- Guia de testes de origem para desenvolvedores da Web
- Explicação sobre o teste de origem
- Como executar um teste de origem
- Processo para lançar novos recursos no Chromium
- Intent to explain: Demystifying the Blink shipping process
- Usar testes de origem no Microsoft Edge
- Testes de origem para Firefox