Résolvez les problèmes courants liés aux jetons d'essai dans les balises Meta, les en-têtes et les scripts.
Checklist
Pour résoudre un problème lié à une phase d'évaluation, résolvez chacun des problèmes ci-dessous à l'aide des liens fournis.
/d'{3{8-8 du jeton d'origine est le jeton d'origine
Essayez !
Les démonstrations ci-dessous présentent chacune des façons de fournir un jeton pour la phase d'évaluation et d'accéder à une fonctionnalité d'essai:
- ot-meta.glitch.me: jeton dans une balise Meta
origin-trial
- ot-header.glitch.me: jeton dans un en-tête de réponse
Origin-Trial
- ot-3p.glitch.me: jeton injecté par un script tiers
- ot-iframe.glitch.me: fonctionnalité d'évaluation accessible dans un iFrame
- ot-iframe-3p.glitch.me: exemples d'iFrames multi-origines
Vérifier les jetons à l'aide des outils pour les développeurs Chrome
Dans les outils pour les développeurs Chrome 93, les informations sur la phase d'évaluation s'affichent dans le panneau "Application" pour le frame sélectionné.
Développez le frame supérieur pour inspecter les jetons d'évaluation disponibles pour un sous-frame. Par exemple, pour la page de démonstration accessible à l'adresse ot-iframe.glitch.me, vous pouvez voir que la page de l'iFrame fournit un jeton.
- État du jeton: indique si la page comporte un jeton valide. Notez que, pour certaines phases d'évaluation, il est possible que d'autres facteurs, tels que des restrictions géographiques, ne soient pas disponibles, malgré la présence d'un jeton valide. Les codes d'état des outils pour les développeurs Chrome expliquent la signification de chacun des codes pour les phases d'évaluation.
- Origine: origine Web enregistrée pour le jeton.
- Expiry Time (Heure d'expiration) : date/heure d'expiration maximale (la plus récente) possible du jeton, qui correspond normalement à la fin de l'essai. Il ne s'agit pas de la date limite de validité du jeton affichée dans Mes enregistrements, qui indique la durée de validité actuelle du jeton et peut être étendue.
- Restriction d'utilisation: limites d'utilisation qui peuvent être définies pour certains essais.
- Tiers: indique si la correspondance tierce est activée pour le jeton. Cette option est disponible pour certaines phases d'évaluation pour lesquelles une fonctionnalité d'essai doit être accessible sur plusieurs sites à partir de scripts tiers.
- Match Sub-Domains (Correspondance avec les sous-domaines) : indique si la correspondance des sous-domaines est activée pour le jeton. Cela permet de tester une fonctionnalité d'évaluation sur plusieurs sous-domaines d'une origine, sans avoir besoin d'un jeton différent pour chaque sous-domaine.
Les outils pour les développeurs Chrome affichent un avertissement à côté du nom de l'essai si celui-ci n'est pas disponible pour l'utilisateur actuel, si le jeton a expiré ou s'il existe d'autres restrictions.
Codes d'état des outils pour les développeurs Chrome
Expiré: la date d'expiration du jeton est dépassée. Vous devez renouveler le jeton pour en générer un nouveau avec une nouvelle date d'expiration.
Code sourceFeatureDisabled: l'essai est actuellement désactivé.
Code sourceFeatureDisabledForUser: ce jeton a été désigné comme désactivé pour l'utilisateur actuel via une autre restriction d'utilisation. Consultez la section "Exclusions de sous-ensembles d'utilisateurs" du document de conception.
Code source 1
Code source 2Non sécurisée: l'origine de la requête n'est pas sécurisée, et l'essai n'est pas activé pour les origines non sécurisées. Comme expliqué dans le code de l'outil de validation des jetons d'évaluation d'origine : "Pour les jetons tiers, l'origine actuelle et l'origine du script doivent être sécurisées. En raison de la correspondance de sous-domaines, l'origine du jeton peut ne pas être une correspondance exacte pour l'une des origines de script fournies. Le résultat n'indique donc pas quelle origine spécifique a été mise en correspondance. Il ne s'agit donc pas d'une recherche directe pour trouver l'origine de script appropriée. Pour éviter de répéter toutes les comparaisons d'origines, il existe des raccourcis qui dépendent du nombre d'origines de script fournies. Il doit y en avoir au moins un, sans quoi le jeton tiers ne sera pas validé."
Code sourceInvalidSignature: la signature du jeton n'est pas valide ou son format est incorrect.
Code sourceFormat incorrect: le format du jeton est incorrect et il n'a pas pu être analysé.
Code source
NotSupported : la phase d'évaluation définie par le jeton n'est pas prise en charge dans l'intégrateur Chromium, c'est-à-dire un navigateur tel que Chrome ou Edge, une WebView ou un autre user-agent.
Code sourceOpération effectuée: le jeton est correctement formaté, n'a pas expiré, correspond à une fonctionnalité en phase d'évaluation et a été demandé depuis une origine prévue.
Code sourceTokenDisabled: le jeton a été marqué comme désactivé et ne peut pas être utilisé.
Code sourceTrialNotAllowed: la phase d'évaluation n'est pas disponible pour l'utilisateur actuel.
Code sourceUnknownTrial: le jeton spécifie un nom de fonctionnalité qui ne correspond à aucun essai connu.
Code sourceWrongOrigin: l'origine de la requête ne correspond pas à l'origine spécifiée dans le jeton. Il peut s'agir du schéma, du nom d'hôte ou du port. Cet état s'affiche également si un jeton tiers est fourni dans un en-tête HTTP, une balise Meta ou un script intégré, plutôt que dans un fichier JavaScript externe.
Code sourceWrongVersion: version du jeton incorrecte: seules les versions 2 et 3 des jetons sont actuellement compatibles.
Code source
Ça ne fonctionne pas. 🤔
Si votre phase d'évaluation ne fonctionne pas comme prévu, assurez-vous de remplir les conditions suivantes.
Vous effectuez le test dans Chrome, et non dans Chromium ou dans un autre navigateur
Les phases d'évaluation de Chrome sont conçues pour les utilisateurs de Chrome. N'utilisez pas les jetons d'évaluation de Chrome pour activer les fonctionnalités d'essai dans d'autres navigateurs, y compris Chromium et d'autres navigateurs basés sur Chromium. En effet, les phases d'évaluation de Chrome sont spécifiques aux fonctionnalités mises à disposition dans Chrome pour les tests.
Les phases d'évaluation sont également disponibles pour Firefox et Microsoft Edge. Une inscription à la phase d'évaluation de Firefox ou d'Edge n'entraîne pas l'activation d'une fonctionnalité dans Chrome.
La phase d'évaluation est activée pour les versions de Chrome qui accèdent à votre site.
L'accès aux essais est limité à certaines versions de Chrome. Dans certains cas, cela peut signifier qu'une fonctionnalité d'essai n'est disponible que pour les versions préstables de Chrome: Canary, en développement et bêta.
Vous pouvez vérifier la disponibilité des versions sur la page d'inscription à l'essai:
Pour connaître la version de Chrome que vous utilisez, accédez à chrome://version.
La phase d'évaluation n'est pas désactivée par les paramètres Chrome.
Si un utilisateur signale qu'une fonctionnalité ne fonctionne pas pour lui, vérifiez qu'elle n'est pas désactivée dans ses paramètres Chrome. Par exemple, les fonctionnalités de la Privacy Sandbox peuvent être désactivées à partir de la page chrome://settings/privacySandbox
.
Les mots clés et la syntaxe sont corrects
Veillez à utiliser des mots clés et une syntaxe appropriés pour les jetons d'évaluation.
Pour une utilisation propriétaire, un jeton peut être fourni dans une balise Meta origin-trial
:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Un jeton peut également être fourni dans un en-tête de réponse Origin-Trial
. Voici un exemple utilisant Express dans Node.js:
app.use(function(req, res, next) {
res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
next();
});
Vous pouvez également fournir les jetons à l'aide de JavaScript:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
L'origine du jeton propriétaire correspond à celle de la page
Assurez-vous que la valeur Web Origin (Origine Web) sélectionnée lors de votre inscription à un essai correspond à l'origine de la page contenant la balise Meta ou l'en-tête fournissant le jeton.
Par exemple, si vous avez sélectionné https://example.com
comme origine Web:
La valeur du jeton peut se présenter comme suit:
Vérifiez que cette valeur correspond au jeton utilisé sur la page que vous essayez de résoudre.
Pour un jeton fourni dans une balise Meta, consultez le code HTML:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
S'il s'agit d'un jeton fourni dans un en-tête, vous pouvez vérifier sa valeur dans le panneau Chrome DevTools Network sous Response Headers:
Le jeton propriétaire est diffusé à partir de l'origine qui l'utilise.
Pour permettre l'accès à une fonctionnalité d'évaluation pour le code inclus dans une page diffusée à partir de votre origine, fournissez un jeton d'essai dans une balise Meta, un en-tête ou via JavaScript de la même origine.
L'origine enregistrée pour un jeton doit correspondre à celle qui le dessert.
L'origine du jeton tiers correspond à l'origine du script
Vous pouvez vous inscrire pour participer à une phase d'évaluation pour des scripts injectés sur d'autres origines.
Par exemple, si vous souhaitez que les scripts diffusés à partir de javascript-library.example
participent à une phase d'évaluation, vous devez enregistrer un jeton avec une correspondance tierce pour javascript-library.example
.
La valeur d'origine d'un jeton tiers doit correspondre à l'origine du script qui l'injecte.
Le script tiers utilise un jeton tiers
Vous ne pouvez pas autoriser un script tiers à participer à une phase d'évaluation sur votre site simplement en enregistrant un jeton pour votre origine, et non pour le script.
Les scripts tiers doivent utiliser des jetons pour lesquels la correspondance tierce est activée et injectés via le script lui-même (non inclus dans une balise Meta ni dans un en-tête de votre site) avec un code semblable à celui-ci:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
Le jeton tiers est fourni via un script externe, et non une balise Meta, un en-tête HTTP ou un script intégré.
Les jetons tiers sont validés par rapport à l'origine du script qui les a injectés, mais les scripts intégrés et les balises <meta>
dans le balisage statique n'ont pas d'origine (c'est-à-dire une URL source).
Cela signifie qu'un jeton tiers doit être fourni via un script externe, et non dans une balise <meta>
ou un script intégré. Peu importe si le script externe qui injecte le jeton provient de la même origine que la page parent ou d'une origine différente, à condition que l'origine du script corresponde à une origine enregistrée pour l'essai.
Une démonstration de ce format est disponible sur ot-iframe-3p.glitch.me.
L'accès aux fonctionnalités de la phase d'évaluation est compatible avec la méthode utilisée pour fournir un jeton d'essai
Pour certains types d'accès aux fonctionnalités de la phase d'évaluation, vous devez fournir un jeton d'essai d'une manière spécifique.
Par exemple, le seul moyen d'activer l'accès en phase d'évaluation pour les service workers et les workers partagés est de fournir un jeton dans un en-tête Origin-Trial
.
La correspondance de sous-domaines est activée pour un jeton utilisé sur un sous-domaine
Si une fonctionnalité de la phase d'évaluation ne semble pas fonctionner pour certaines pages de votre site, vérifiez que les jetons sont correctement configurés pour les sous-domaines qui les diffusent.
Lorsque vous vous inscrivez à une phase d'évaluation, vous pouvez éventuellement choisir de faire correspondre tous les sous-domaines de l'origine:
Vous pouvez également établir une correspondance entre des sous-domaines et des jetons tiers:
Les jetons de sous-domaines ne seront pas émis pour les origines figurant dans la liste des suffixes publics. Par exemple, vous ne pouvez pas enregistrer une origine telle que https://appspot.com ou https://github.io, mais vous pouvez enregistrer des domaines au sein de cette origine, tels que https://example.appspot.com ou https://example.github.io.
Le jeton est toujours valide
Les jetons sont valides pendant six semaines après leur création. Vous devez nous envoyer vos commentaires pour prolonger la date limite de validité. Le guide des phases d'évaluation pour les développeurs Web explique comment s'assurer que votre jeton est valide pendant toute la durée de la phase d'évaluation.
Vous pouvez vérifier si des jetons sont actifs sur la page Mes inscriptions de vos phases d'évaluation de Chrome:
Les outils pour les développeurs Chrome affichent l'état Success
si le jeton est toujours valide:
Si votre jeton a expiré, les outils de développement affichent l'état Expired
, et votre page Mes enregistrements affiche une section Jetons expirés.
La phase d'évaluation n'est pas terminée
Vous pouvez vérifier la date de fin d'une phase d'évaluation sur la page d'inscription:
Pour les essais qui sont terminés, les outils de développement afficheront un résultat semblable à celui-ci:
Vous recevrez des e-mails automatiques lorsque des commentaires sont requis ou qu'un jeton est sur le point d'expirer, mais pas à la fin de l'essai.
La phase d'évaluation est disponible pour l'utilisateur actuel
Certaines phases d'évaluation ne sont pas disponibles pour certains utilisateurs, même si un jeton valide est fourni.
Si aucun essai n'est disponible pour l'utilisateur actuel, les outils pour les développeurs Chrome afficheront l'avertissement TrialNotAllowed
:
Les informations sur les restrictions d'utilisation et la disponibilité seront fournies pour chaque phase d'évaluation.
Comme pour toute fonctionnalité de la plate-forme Web, vous devez utiliser la détection de fonctionnalités pour vérifier qu'une fonctionnalité en phase d'évaluation est compatible avant de l'utiliser.
Les restrictions d'utilisation de la phase d'évaluation n'ont pas été dépassées
Par défaut, une phase d'évaluation est activée sur toutes les pages disposant d'un jeton valide pour cette période d'essai.
Toutefois, sauf dans de rares cas, l'utilisation de la phase d'évaluation est limitée à 0,5% au maximum de tous les chargements de pages Chrome. La phase d'évaluation sera désactivée si l'utilisation totale par tous les utilisateurs de Chrome dépasse cette limite. Dans les outils de développement, l'état du jeton est désactivé.
Il n'y a pas de limite d'utilisation pour les essais d'abandon, car ils n'introduisent pas de nouvelles fonctionnalités et ne présentent donc pas de risque de faire dépendre une part significative du Web d'une fonctionnalité d'essai.
Certains essais offrent également une option pour limiter l'utilisation, ce qui signifie que les fonctionnalités de la phase d'évaluation seront désactivées pour certains utilisateurs. Cette option est disponible sur la page d'inscription à une phase d'évaluation qui la propose:
Si vous remarquez que l'accès de vos utilisateurs à une phase d'évaluation est plus faible que prévu, assurez-vous que l'option "Limite standard" est sélectionnée.
Les iFrames fournissent leurs propres jetons
Pour autoriser l'accès à une fonctionnalité d'évaluation, un iFrame doit fournir un jeton dans une balise Meta, un en-tête HTTP ou de façon programmatique. Les iFrames n'héritent pas de l'accès aux fonctionnalités activées pour les pages qui les contiennent.
ot-iframe.glitch.me illustre l'accès à une fonctionnalité d'évaluation à partir d'un iFrame. ot-iframe-3p.glitch.me fournit plusieurs exemples d'iFrame d'origines différentes.
Les règles d'autorisation sont correctement configurées
Certaines fonctionnalités de la phase d'évaluation peuvent être affectées par un en-tête Permissions-Policy
(anciennement Feature-Policy
). Vous pouvez vérifier cela dans l'Intent à tester pour la fonctionnalité d'essai, ou dans la documentation pour les développeurs concernant la fonctionnalité sur web.dev ou developer.chrome.com/blog.
Assurez-vous que la fonctionnalité à laquelle vous tentez d'accéder n'est pas bloquée par une directive Permissions-Policy
. Vous pouvez vérifier les en-têtes de réponse dans le panneau Chrome DevTools Network et afficher la liste complète des fonctionnalités autorisées dans le panneau "Application".
Et les travailleurs ?
Les fonctionnalités des phases d'évaluation peuvent être mises à la disposition des service workers, des workers partagés et des nœuds de calcul dédiés. Toutefois, le seul moyen d'autoriser l'accès pour les service workers et les workers partagés est de fournir un jeton dans un en-tête Origin-Trial
.
Les nœuds de calcul dédiés héritent de l'accès aux fonctionnalités activées par leur document parent.
Le jeton est fourni avant l'accès à la fonctionnalité
Assurez-vous qu'un jeton d'évaluation est fourni avant d'accéder à la fonctionnalité d'essai. Par exemple, si une page fournit un jeton via JavaScript, assurez-vous que le code permettant de fournir le jeton est exécuté avant le code qui tente d'accéder à la fonctionnalité d'essai.
Démonstrations des phases d'évaluation
- Jeton dans une balise Meta
- Jeton dans un en-tête
- Fonctionnalité accessible dans un iFrame
- Jeton injecté par un script tiers
- ot-iframe-3p.glitch.me: exemples d'iFrames multi-origines
En savoir plus
- Premiers pas avec les phases d'évaluation de Chrome
- Phases d'évaluation tierces
- Guide sur les phases d'évaluation pour les développeurs Web
- Explication de la phase d'évaluation
- Lancer une phase d'évaluation
- Procédure de lancement de nouvelles fonctionnalités dans Chromium
- Explication: démystifier le processus de livraison Blink
- Utiliser les phases d'évaluation dans Microsoft Edge
- Phases d'évaluation pour Firefox