Risolvere i problemi relativi alle prove dell'origine di Chrome

Risolvi i problemi comuni relativi ai token di prova in meta tag, intestazioni e script.

Elenco di controllo

Per risolvere i problemi relativi a una prova dell'origine, risolvi ciascuno dei problemi riportati di seguito utilizzando i link forniti.

Prova

Le demo riportate di seguito mostrano ciascuno dei modi per fornire un token di prova dell'origine e accedere a una funzionalità di prova:

Utilizzare Chrome DevTools per controllare i token

A partire da Chrome 93, Strumenti per sviluppatori fornisce informazioni sulla prova dell'origine nel riquadro App per il frame selezionato.

Informazioni sulle prove dell'origine di Chrome DevTools nel riquadro Applicazione.

Espandi il frame superiore per ispezionare i token di prova dell'origine disponibili per un frame secondario. Ad esempio, per la pagina di demo all'indirizzo ot-iframe.glitch.me, puoi vedere che la pagina nell'iframe fornisce un token.

Riquadro dell'applicazione Chrome DevTools 
  che mostra i token di prova dell'origine per la pagina in iframe.

  • Stato token: indica se la pagina ha un token valido. Tieni presente che per alcune prove dell'origine potrebbero esserci altri fattori, come limitazioni geografiche, che rendono la funzionalità di prova dell'origine non disponibile, nonostante la presenza di un token valido. La pagina Codici di stato di Strumenti per sviluppatori di Chrome spiega il significato di ciascuno dei codici per i trial delle origini.
  • Origine: l'origine web registrata per il token.
  • Scadenza: la data/ora di scadenza massima (più recente) possibile per il token, che in genere corrisponde alla fine della prova. Non corrisponde alla data di validità del token visualizzata in Le mie registrazioni, che mostra per quanto tempo il token è attualmente valido e può essere esteso.
  • Limitazione dell'utilizzo: limiti di utilizzo che possono essere impostati per alcune prove.
  • Terza parte: indica se la corrispondenza di terze parti è attivata per il token. Questa opzione è disponibile per alcune prove dell'origine, in cui è necessario accedere a una funzionalità di prova su più siti da script di terze parti.
  • Abbina sottodomini: indica se la corrispondenza dei sottodomini è abilitata per il token. In questo modo è possibile testare una funzionalità di prova dell'origine su più sottodomini di un'origine, senza richiedere un token diverso per ogni sottodominio.

Chrome DevTools mostra un avviso accanto al nome della prova se la prova non è disponibile per l'utente corrente, se il token è scaduto o se ci sono altre limitazioni.

Informazioni sulle prove dell'origine di Chrome DevTools nel riquadro Applicazione che mostrano un token scaduto

Codici di stato di Chrome DevTools

  • Scaduto: il token ha superato la data di scadenza. Il token dovrà essere rinnovato per generare un nuovo token con una nuova data di scadenza.
    Codice sorgente

  • FeatureDisabled: la prova è attualmente disattivata.
    Codice sorgente

  • FeatureDisabledForUser: questo token è stato contrassegnato come disattivato per l'utente corrente tramite una limitazione di utilizzo alternativa. Consulta la sezione "Esclusioni dei sottoinsiemi utente" del documento sulla progettazione.
    Codice sorgente 1
    Codice sorgente 2

  • Non sicura: l'origine della richiesta non è sicura e la prova non è abilitata per le origini non sicure. Come spiegato nel codice di convalida dei token della prova dell'origine: "Per i token di terze parti, sia l'origine corrente sia l'origine dello script devono essere sicure. A causa della corrispondenza dei sottodomini, l'origine del token potrebbe non essere una corrispondenza esatta per una delle origini degli script fornite e il risultato non indica l'origine specifica corrispondente. Ciò significa che non si tratta di una ricerca diretta per trovare l'origine dello script appropriata. Per evitare di ripetere tutti i confronti delle origini, esistono scorciatoie che dipendono dal numero di origini dello script fornite. Deve essercene almeno uno, altrimenti il token di terze parti non verrà convalidato correttamente.'
    Codice sorgente

  • InvalidSignature: il token ha una firma non valida o non corretta.
    Codice sorgente

  • Formato non valido: il token non è valido e non è stato possibile analizzarlo.
    Codice sorgente

  • NotSupported: la prova dell'origine definita dal token non è supportata nell'incorporamento di Chromium: un browser come Chrome o Edge, un componente WebView o un altro user agent.
    Codice sorgente

  • Risultato positivo: il token è ben formato, non è scaduto, corrisponde a una funzionalità di prova dell'origine e viene richiesto da un'origine prevista.
    Codice sorgente

  • TokenDisabled: il token è stato contrassegnato come disattivato e non può essere utilizzato.
    Codice sorgente

  • TrialNotAllowed: la prova dell'origine non è disponibile per l'utente corrente.
    Codice sorgente

  • UnknownTrial: il token specifica un nome di funzionalità che non corrisponde a nessuna prova nota.
    Codice sorgente

  • WrongOrigin: l'origine della richiesta non corrisponde a quella specificata nel token. Può includere lo schema, il nome host o la porta. Questo stato viene visualizzato anche se viene fornito un token di terze parti in un'intestazione HTTP, un meta tag o uno script incorporato, anziché in un file JavaScript esterno.
    Codice sorgente

  • WrongVersion: versione del token errata: al momento sono supportate solo le versioni 2 e 3 del token.
    Codice sorgente


Non funziona. 🤔

Se la prova dell'origine non funziona come previsto, assicurati di soddisfare le seguenti condizioni.

Stai eseguendo il test in Chrome, non in Chromium o in un altro browser

Le prove delle origini di Chrome sono progettate per funzionare per gli utenti di Chrome. Non fare affidamento sui token di prova dell'origine di Chrome per attivare le funzionalità di prova in altri browser, inclusi Chromium e altri browser basati su Chromium. Questo accade perché le prove dell'origine di Chrome sono specifiche per le funzionalità rese disponibili in Chrome per gli esperimenti.

Le prove dell'origine sono disponibili anche per Firefox e Microsoft Edge. La registrazione a una prova di origine di Firefox o Edge non attiverà una funzionalità in Chrome.

La prova dell'origine è attivata per le versioni di Chrome che accedono al tuo sito

L'accesso alle prove è limitato a versioni specifiche di Chrome. In alcuni casi, ciò potrebbe significare che una funzionalità di prova è disponibile solo per i canali Chrome prestabiliti: Canary, Dev e Beta.

Puoi verificare la disponibilità della versione dalla pagina di registrazione per la prova:

Pagina delle prove dell'origine di Chrome per gli insiemi proprietari e SameParty con la disponibilità di Chrome evidenziata

Puoi controllare la versione di Chrome in uso da chrome://version.

La prova dell'origine non è disattivata dalle impostazioni di Chrome

Se un singolo utente segnala che una funzionalità non funziona, controlla che non sia disabilitata nelle impostazioni di Chrome. Ad esempio, le funzionalità di Privacy Sandbox possono essere disattivate dalla pagina chrome://settings/privacySandbox.

Le parole chiave e la sintassi sono corrette

Assicurati di utilizzare parole chiave e sintassi appropriate per i token di prova dell'origine.

Per l'utilizzo proprietario, un token può essere fornito in un meta tag origin-trial:

<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">

In alternativa, un token può essere fornito in un'intestazione di risposta Origin-Trial. Ecco un esempio di utilizzo di Express in Node.js:

app.use(function(req, res, next) {
  res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
  next();
});

I token possono essere forniti anche utilizzando JavaScript:

function addTrialToken(tokenContents) {
  const tokenElement = document.createElement('meta');
  tokenElement.httpEquiv = 'origin-trial';
  tokenElement.content = tokenContents;
  document.head.appendChild(tokenElement);
}

L'origine del token proprietario corrisponde all'origine della pagina

Assicurati che il valore Origine web selezionato quando ti registri a una prova corrisponda all'origine della pagina contenente il meta tag o l'intestazione che fornisce il token.

Ad esempio, se hai selezionato https://example.com come origine web:

Pagina Prove dell&#39;origine di Chrome che mostra https://example.com selezionato come origine web.

Potresti ottenere un valore del token simile al seguente:

la pagina Prove dell&#39;origine Chrome
che mostra il valore del token.

Verifica che questo valore corrisponda al token utilizzato nella pagina per la quale stai cercando di risolvere il problema.

Per un token fornito in un meta tag, controlla il codice HTML:

  <meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">

Per un token fornito in un'intestazione, puoi controllare il valore del token nel riquadro della rete di Chrome DevTools in Intestazioni di risposta:

Riquadro Rete di Chrome DevTools che mostra l&#39;intestazione della risposta delle prove dell&#39;origine.

Il token proprietario viene fornito dall'origine che lo utilizza

Per consentire l'accesso a una funzionalità di prova dell'origine per il codice incluso in una pagina pubblicata dalla tua origine, fornisci un token di prova in un meta tag, in un'intestazione o tramite JavaScript dalla stessa origine.

L'origine registrata per un token deve corrispondere a quella che lo serve.

L'origine del token di terze parti corrisponde all'origine dello script

Puoi registrarti per partecipare a una prova dell'origine per gli script iniettati in altre origini.

Ad esempio, se vuoi che gli script pubblicati da javascript-library.example partecipino a una prova dell'origine, devi registrare un token con la corrispondenza di terze parti per javascript-library.example.

Pagina di registrazione per le prove dell&#39;origine di Chrome che mostra la corrispondenza di terze parti selezionata.

Il valore di origine di un token di terze parti deve corrispondere all'origine dello script che lo inserisce.

Lo script di terze parti utilizza un token di terze parti

Non puoi consentire a uno script di terze parti di partecipare a una prova dell'origine sul tuo sito semplicemente registrando un token per l'origine e non per lo script.

Gli script di terze parti devono utilizzare token con la corrispondenza di terze parti attivata, inseriti tramite lo script stesso (non incluso in un meta tag o in un'intestazione sul tuo sito) con codice come il seguente:

function addTrialToken(tokenContents) {
  const tokenElement = document.createElement('meta');
  tokenElement.httpEquiv = 'origin-trial';
  tokenElement.content = tokenContents;
  document.head.appendChild(tokenElement);
}

Il token di terze parti viene fornito tramite uno script esterno, non un meta tag, un'intestazione HTTP o uno script in linea

I token di terze parti vengono convalidati in base all'origine dello script che li ha iniettati, ma gli script in linea e i tag <meta> nel markup statico non hanno un'origine (ovvero un URL di origine).

Ciò significa che un token di terze parti deve essere fornito tramite uno script esterno, non in un tag <meta> o in uno script incorporato. Non importa se lo script esterno che inietta il token proviene dalla stessa origine della pagina contenente o da un'origine diversa, purché l'origine dello script corrisponda a un'origine registrata per la prova.

Puoi guardare una demo di questa funzionalità all'indirizzo ot-iframe-3p.glitch.me.

L'accesso alle funzionalità di Origin trial è supportato per il metodo utilizzato per fornire un token di prova

Alcuni tipi di accesso alle funzionalità di Origin trials richiedono di fornire un token di prova in un modo specifico. Ad esempio, l'unico modo per attivare l'accesso di prova all'origine per i worker di servizio e i worker condivisi è fornire un token in un'intestazione Origin-Trial.

La corrispondenza dei sottodomini è attivata per un token utilizzato in un sottodominio

Se una funzionalità di prova dell'origine non sembra funzionare per alcune pagine del tuo sito, controlla che i token siano configurati correttamente per i sottodomini che li pubblicano.

Quando registri una prova dell'origine, puoi scegliere se associare tutti i sottodomini dell'origine:

Pagina di registrazione per le prove dell&#39;origine di Chrome che mostra la corrispondenza dei sottodomini selezionata

Puoi anche associare sottodomini per i token di terze parti:

Pagina di registrazione delle prove dell&#39;origine di Chrome che mostra la corrispondenza di terze parti e la corrispondenza dei sottodomini selezionate

I token dei sottodomini non verranno emessi per le origini nell'elenco dei suffissi pubblici. Ad esempio, non puoi registrare un'origine come https://appspot.com o https://github.io, ma puoi registrare domini all'interno di quell'origine, ad esempio https://example.appspot.com o https://example.github.io.

Il token è ancora valido

I token sono validi per sei settimane dopo la loro creazione. Oltre a questo, devi inviare un feedback per estendere la data di validità. La Guida alle prove dell'origine per gli sviluppatori web spiega come assicurarti che il token sia valido per un'intera prova dell'origine.

Puoi controllare la presenza di token attivi nella pagina Le mie registrazioni di Origin Trials di Chrome:

Prove dell&#39;origine di Chrome 
Pagina Le mie registrazioni che mostra la data di validità

Chrome DevTools mostra lo stato Success se il token è ancora valido:

Informazioni sulle prove dell&#39;origine di Chrome DevTools nel riquadro Applicazione, con lo stato Stato: Successo evidenziato.

Se il token è scaduto, DevTools mostrerà lo stato Expired e nella pagina Le mie registrazioni verrà visualizzata una sezione Token scaduti.

Prove dell&#39;origine di Chrome 
Pagina Le mie registrazioni che mostra i token scaduti.

La prova dell'origine non è terminata

Puoi controllare la data di fine di una prova dell'origine dalla relativa pagina di registrazione:

Pagina Prove dell&#39;origine di Chrome per gli insiemi proprietari e SameParty con i dettagli della prova disponibili evidenziati.

Per le prove terminate, DevTools mostrerà qualcosa di simile al seguente:

Informazioni sulle prove dell&#39;origine di Chrome DevTools nel riquadro dell&#39;applicazione che mostrano ValidTokenNotProvided e Stato scaduto

Ti verranno inviate email automatiche quando è necessario un feedback o quando un token sta per scadere, ma non al termine della prova.

La prova dell'origine è disponibile per l'utente corrente

Alcune prove dell'origine non sono disponibili per determinati utenti, anche se viene fornito un token valido.

Se non è disponibile una prova per l'utente corrente, Chrome DevTools mostrerà un avviso TrialNotAllowed:

Informazioni sulle prove dell&#39;origine di Chrome DevTools nel riquadro Applicazione che mostra l&#39;avviso TrialNotAllowed.

Per ogni prova dell'origine verranno fornite informazioni sulle restrizioni di utilizzo e sulla disponibilità.

Come per qualsiasi funzionalità della piattaforma web, devi utilizzare il rilevamento delle funzionalità per verificare che una funzionalità di prova dell'origine sia supportata prima di utilizzarla.

Le limitazioni all'utilizzo della prova dell'origine non sono state superate

Per impostazione predefinita, la funzionalità di prova dell'origine verrà attivata in qualsiasi pagina che abbia un token valido per la prova.

Tuttavia, salvo rare eccezioni, l'utilizzo della prova dell'origine è limitato a un massimo dello 0,5% di tutti i caricamenti di pagine di Chrome. La funzionalità di prova dell'origine verrà disattivata se l'utilizzo totale da parte di tutti gli utenti di Chrome supera questo limite. DevTools mostrerà lo stato del token come disattivato.

Non sono previsti limiti di utilizzo per le prove di ritiro, poiché non introducono nuove funzionalità e, di conseguenza, non comportano il rischio di rendere una parte significativa del web dipendente da una funzionalità di prova.

Alcune prove offrono anche un'opzione per limitare l'utilizzo, il che significa che le funzionalità della prova dell'origine verranno disattivate per alcuni utenti. Questa opzione è disponibile nella pagina di registrazione per una prova dell'origine che la offre:

Pagina di registrazione delle prove dell&#39;origine di Chrome che mostra le limitazioni d&#39;uso.

Se noti che l'accesso dei tuoi utenti a una funzionalità di prova dell'origine è inferiore alle aspettative, assicurati che sia selezionato "Limite standard".

Gli iframe forniscono i propri token

Per consentire l'accesso a una funzionalità di prova dell'origine, un iframe deve fornire un token in un meta tag, un'intestazione HTTP o in modo programmatico. Gli iframe non ereditano l'accesso alle funzionalità attivate per le pagine che li contengono.

ot-iframe.glitch.me mostra l'accesso a una funzionalità di prova dell'origine da un iframe. ot-iframe-3p.glitch.me fornisce diversi esempi di iframe multiorigine.

I criteri di autorizzazione sono configurati correttamente

Alcune funzionalità di prova dell'origine potrebbero essere interessate da un Permissions-Policy header (in precedenza noto come Feature-Policy header). Puoi verificarlo in Intent to Experiments per la funzionalità di prova o nella documentazione per sviluppatori relativa alla funzionalità su web.dev o developer.chrome.com/blog.

Assicurati che la funzionalità a cui stai tentando di accedere non sia bloccata da una direttiva Permissions-Policy. Puoi controllare le intestazioni delle risposte nel riquadro Network (Rete) di Chrome DevTools e visualizzare l'elenco completo delle funzionalità consentite nel riquadro Applicazione.

Riquadro dell&#39;applicazione
  Chrome DevTools che mostra la funzionalità consentita dai criteri relativi alle autorizzazioni.

E i lavoratori?

Le funzionalità di prova dell'origine possono essere rese disponibili per i worker di servizio, i worker condivisi e i worker dedicati. Tuttavia, l'unico modo per consentire l'accesso per i service worker e i worker condivisi è fornire un token in un'intestazione Origin-Trial.

I lavoratori dedicati ereditano l'accesso alle funzionalità abilitate dal documento principale.

Il token viene fornito prima di accedere alla funzionalità

Assicurati che un token di prova dell'origine venga fornito prima di accedere a una funzionalità di prova. Ad esempio, se una pagina fornisce un token tramite JavaScript, assicurati che il codice per fornire il token venga eseguito prima del codice che tenta di accedere alla funzionalità di prova.

Demo della prova dell'origine

Scopri di più