Устраните распространенные проблемы с пробными токенами в метатегах, заголовках и скриптах.
В этом руководстве предполагается практическое знание пробных версий Origin в Chrome . Подробные часто задаваемые вопросы можно найти в руководстве по пробным версиям Origin для веб-разработчиков .
Если вы столкнулись с ошибкой в исходных пробных версиях в Chrome, отправьте новую проблему в репозиторий исходных пробных версий Chrome на GitHub.
Контрольный список
Чтобы устранить неполадки в исходной пробной версии, устраните каждую из проблем, используя предоставленные ссылки.
Используйте Chrome DevTools для проверки токенов
DevTools предоставляет информацию об исходной пробной версии на панели «Приложение» для выбранного кадра.
Разверните верхний фрейм, чтобы проверить исходные пробные жетоны, доступные для подкадра. Например, для демонстрационной страницы ot-iframe.glitch.me вы можете видеть, что страница в iframe предоставляет токен.
- Статус токена : имеет ли страница действительный токен. Обратите внимание, что для некоторых пробных версий происхождения могут действовать другие факторы, например географические ограничения, из-за которых функция пробной версии происхождения недоступна, несмотря на наличие действующего токена. Коды статуса Chrome DevTools объясняют значение каждого из кодов для исходных пробных версий.
- Origin : веб-источник, зарегистрированный для токена.
- Expiry Time : максимально (самая поздняя) возможная дата и время истечения срока действия токена, которое (по большей части) совпадает с окончанием пробной версии. Это не то же самое, что дата «Действителен до» для токена, отображаемая в разделе «Мои регистрации» , которая показывает, как долго токен действителен и может быть продлен .
- Ограничение использования : ограничения на использование, которые могут быть установлены для некоторых пробных версий.
- Третья сторона : включено ли для токена стороннее сопоставление . Это доступно для некоторых исходных пробных версий, когда к функции пробной версии необходимо получить доступ на нескольких сайтах из сторонних скриптов.
- Сопоставить поддомены : включено ли для токена сопоставление поддоменов . Это позволяет протестировать пробную функцию источника на нескольких субдоменах источника без необходимости использования отдельного токена для каждого субдомена.
Chrome DevTools отображает предупреждение рядом с названием пробной версии, если пробная версия недоступна для текущего пользователя, срок действия токена истек или существуют другие ограничения.
Коды состояния
В Chrome DevTools вы можете встретить следующие коды состояния.
Срок действия истек : срок действия токена истек. Чтобы повторно включить пробную версию источника, необходимо обновить токен. Создайте новый токен с новым сроком действия. Исходный код
FeatureDisabled : пробная версия отключена для использования. Исходный код
FeatureDisabledForUser : этот токен был обозначен как отключенный для текущего пользователя с альтернативным ограничением использования. См. раздел «Исключения подмножества пользователей» проектной документации . Исходный код 1 и Исходный код 2
Небезопасно : источник запроса небезопасен, и пробная версия не включена для небезопасного источника. Как поясняется в коде валидатора пробного токена источника : «Для сторонних токенов как текущий источник, так и источник сценария должны быть безопасными. Из-за сопоставления поддоменов происхождение токена может не совпадать в точности с одним из предоставленных источников сценария, и результат не указывает, какое конкретное происхождение было сопоставлено. Это означает, что это не прямой поиск соответствующего источника сценария. Чтобы избежать повторного выполнения всех сравнений источников, существуют ярлыки, которые зависят от того, сколько источников сценариев было предоставлено. Должен быть хотя бы один, иначе сторонний токен не будет успешно проверен». Исходный код
InvalidSignature : токен имеет недействительную или неверную подпись. Исходный код
Неверный : токен имеет неверный формат и не может быть проанализирован. Исходный код
NotSupported : пробная версия источника, определенная токеном, не поддерживается в средстве внедрения Chromium. Средством внедрения может быть браузер (например, Chrome или Edge), WebView или какой-либо другой пользовательский агент. Исходный код
Успех : токен правильно сформирован, срок его действия не истек, соответствует пробной функции источника и запрошен из ожидаемого источника. Исходный код
TokenDisabled : токен помечен как отключенный и не может быть использован. Исходный код
TrialNotAllowed : Исходная пробная версия недоступна для текущего пользователя . Исходный код
UnknownTrial : токен указывает имя функции, которое не соответствует ни одной известной пробной версии. Исходный код
WrongOrigin : источник запроса не соответствует источнику, указанному в токене. Это может включать схему, имя хоста или порт. Этот статус также отображается, если сторонний токен указан в HTTP-заголовке, метатеге или встроенном скрипте, а не во внешнем файле JavaScript. Исходный код
WrongVersion : вы используете неправильную версию токена. Поддерживаются только токены версии 2 и 3. Исходный код
Необходимые условия для испытаний происхождения
Если пробная версия Origin не работает должным образом, убедитесь, что вы выполнили следующие условия.
Вы тестируете в Chrome, а не в Chromium или другом браузере.
Пробные версии Chrome Origin предназначены для пользователей Chrome. Пробные токены происхождения Chrome не поддерживают функции других браузеров, включая Chromium и браузеры на его основе. Это связано с тем, что исходные пробные версии Chrome предназначены только для функций, доступных в Chrome для экспериментов.
Пробные версии Origin также доступны для Firefox и Microsoft Edge . Регистрация в пробной версии Firefox или Edge Origin не активирует эту функцию в Chrome.
Пробная версия Origin включена для версий Chrome, имеющих доступ к вашему сайту.
Доступ к пробным версиям Origin ограничен определенными версиями Chrome. Это может означать, что пробная функция доступна только для каналов Chrome до стабильной версии: Canary, Dev и Beta.
Вы можете проверить доступность версии на странице регистрации пробной версии:
Вы можете проверить используемую версию Chrome на странице chrome://version .
Пробная версия Origin не отключена в настройках Chrome.
Если отдельный пользователь сообщает, что какая-то функция у него не работает, убедитесь, что эта функция не отключена в настройках Chrome. Например, некоторые функции Privacy Sandbox можно отключить на странице chrome://settings/adPrivacy
.
Ключевые слова и синтаксис верны
Обязательно используйте соответствующие ключевые слова и синтаксис для токенов пробной версии источника.
Для собственного использования токен может быть предоставлен в метатеге origin-trial
:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
В качестве альтернативы токен может быть предоставлен в заголовке ответа Origin-Trial
. Вот пример использования Express в Node.js:
app.use(function(req, res, next) {
res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
next();
});
Токены также могут быть предоставлены с помощью JavaScript :
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
Происхождение основного токена соответствует происхождению страницы.
Убедитесь, что значение веб-источника, выбранное при регистрации для пробной версии, соответствует источнику страницы, имеющей метатег или заголовок, предоставляющий токен.
Например, если вы выбрали https://example.com
в качестве веб-источника :
Вы можете получить значение токена следующим образом:
Убедитесь, что это значение соответствует токену, используемому на странице, на которой вы устраняете неполадки.
Чтобы получить токен, указанный в метатеге, проверьте HTML:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Для токена, указанного в заголовке, вы можете проверить значение токена на панели «Сеть Chrome DevTools» в разделе «Заголовки ответов» :
Собственный токен предоставляется источником, который его использует.
Чтобы обеспечить доступ к пробной функции источника для кода, включенного в страницу, обслуживаемую из вашего источника, предоставьте пробный токен в метатеге, заголовке или с помощью JavaScript из того же источника.
Источник, зарегистрированный для токена, должен совпадать с источником, который его обслуживает.
Происхождение стороннего токена соответствует происхождению скрипта
Вы можете зарегистрироваться для участия в пробной версии Origin для сценариев, которые внедряются в другие источники.
Например, если вы хотите, чтобы сценарии, обслуживаемые из javascript-library.example
, участвовали в пробной версии источника, вам необходимо зарегистрировать токен со сторонним соответствием для javascript-library.example
.
Значение источника стороннего токена должно совпадать с источником сценария, который его внедряет.
Сторонний скрипт использует сторонний токен
Вы не можете разрешить стороннему скрипту участвовать в пробной версии Origin на вашем сайте, просто зарегистрировав токен для вашего Origin и забыв о скрипте.
Сторонние сценарии должны использовать токены с включенным сторонним сопоставлением, внедренные в сам сценарий. Эти токены нельзя включать в метатег или заголовок вашего сайта. JavaScript может выглядеть следующим образом:
// Add a third-party OT token
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
Сторонний токен предоставляется с внешним скриптом, а не с метатегом, HTTP-заголовком или встроенным скриптом.
Сторонние токены проверяются на соответствие источнику сценария, который их внедрил. Однако встроенные скрипты и теги <meta>
в статической разметке не имеют источника.
Это означает, что сторонний токен должен быть предоставлен во внешнем скрипте, а не в теге <meta>
или встроенном скрипте. Не имеет значения, происходит ли внешний скрипт, внедряющий токен, из того же источника, что и содержащая страница, или из другого источника, если источник сценария соответствует источнику, зарегистрированному для пробной версии.
См. демонстрационную версию на сайте ot-iframe-3p.glitch.me .
Доступ к пробной версии Origin поддерживается для метода, используемого для предоставления пробного токена.
Некоторые типы доступа к функциям пробной версии Origin требуют, чтобы вы предоставили пробный токен определенным образом. Например, единственный способ включить пробный доступ Origin для сервисных работников и общих рабочих — предоставить токен в заголовке Origin-Trial
.
Сопоставление субдоменов включено для токена, используемого в субдомене.
Если функция пробной версии Origin не работает на некоторых страницах вашего сайта, проверьте, правильно ли настроены токены для обслуживающих их поддоменов.
Когда вы регистрируетесь для пробной версии источника, вы можете при желании выбрать соответствие всем субдоменам источника:
Вы также можете сопоставить субдомены для сторонних токенов:
Токены поддоменов не выдаются для источников в списке общедоступных суффиксов . Например, вы не можете зарегистрировать такой источник, как https://appspot.com
или https://github.io
, но вы можете зарегистрировать домены внутри этого источника, например https://example.appspot.com
или https://example.github.io
.
Токен все еще действителен
Токены действительны в течение шести недель после создания. Помимо этого, вы должны отправить отзыв, чтобы продлить срок действия . Руководство по пробным версиям Origin для веб-разработчиков объясняет, как убедиться, что ваш токен действителен для всей пробной версии Origin.
Вы можете проверить наличие активных токенов на странице «Мои регистрации» в пробных версиях Chrome Origin:
Chrome DevTools отображает статус Success
если токен все еще действителен:
Если срок действия вашего токена истек, DevTools отображает статус Expired
, а на странице «Мои регистрации» отображается раздел «Токены с истекшим сроком действия» .
Испытание происхождения продолжается
Вы можете проверить дату окончания пробной версии Origin на странице регистрации :
Для завершенных пробных версий DevTools отображает что-то вроде этого:
Вам отправляются автоматические электронные письма, когда требуется отзыв или срок действия токена истекает, но не после окончания пробного периода.
Пробная версия Origin доступна для текущего пользователя.
Некоторые пробные версии Origin недоступны определенным пользователям, даже если предоставлен действительный токен.
Если пробная версия недоступна для текущего пользователя, Chrome DevTools отображает предупреждение TrialNotAllowed
:
Информация об ограничениях на использование и доступности предоставляется для каждой исходной пробной версии.
Как и в случае с любой функцией веб-платформы, вам следует использовать функцию обнаружения , чтобы убедиться, что пробная версия Origin поддерживается, прежде чем использовать ее.
Ограничения на использование пробной версии Origin не превышены.
По умолчанию функция пробной версии Origin включена на любой странице, на которой есть действительный токен для пробной версии.
За исключением редких случаев, использование пробной версии Origin ограничено максимум 0,5 % всех загрузок страниц Chrome . Функция пробной версии Origin отключается, если общее использование всеми пользователями Chrome превышает это количество. DevTools отображает статус токена как отключенный.
Для устаревших пробных версий ограничений на использование нет, поскольку они не вводят новых функций и, следовательно, не создают риска сделать значительную часть Интернета зависимой от пробной функции.
Некоторые пробные версии предоставляют возможность ограничить использование, что означает, что функции исходной пробной версии отключены для некоторых пользователей. Эта опция доступна на странице регистрации пробной версии Origin, которая предлагает ее:
Если вы заметили, что доступ ваших пользователей к функции пробной версии Origin ниже ожидаемого, убедитесь, что выбран стандартный лимит .
Iframes предоставляют свои собственные токены
Чтобы разрешить доступ к функции пробной версии источника, iframe должен предоставить токен в метатеге, HTTP-заголовке или программно . Iframe не наследуют доступ к функциям, включенным для страниц, которые их содержат.
ot-iframe.glitch.me демонстрирует доступ к пробной функции Origin из iframe. ot-iframe-3p.glitch.me предоставляет несколько примеров iframe для разных источников.
Политики разрешений настроены правильно
На некоторые функции пробной версии источника может влиять Permissions-Policy
. Это можно проверить в разделе «Намерение экспериментировать» для пробной функции или в документации для разработчиков этой функции на сайте Developer.chrome.com/docs .
Убедитесь, что функция, к которой вы пытаетесь получить доступ, не заблокирована директивой Permissions-Policy
. Вы можете проверить заголовки ответов на панели «Сеть» Chrome DevTools и просмотреть полный список разрешенных функций на панели «Приложение» .
А как насчет рабочих?
Функции пробных версий Origin могут быть доступны сервисным работникам, общим и выделенным работникам. Чтобы разрешить доступ для сервисных работников и общих работников, вы должны предоставить токен в заголовке Origin-Trial
.
Выделенные работники наследуют доступ к функциям, включенным в их родительском документе.
Токен предоставляется до доступа к функции
Прежде чем получить доступ к пробной функции, убедитесь, что исходный пробный токен предоставлен. Например, если страница предоставляет токен с помощью JavaScript, убедитесь, что код предоставления токена запускается до кода, который пытается получить доступ к пробной функции.
Пробные версии Origin
На следующих сайтах показаны примеры развертывания токенов.
Как предоставить пробный токен происхождения
- Токен в метатеге
- Токен в заголовке
- Токен, внедренный сторонним скриптом
- Доступ к функции в iframe
- Примеры iframe для перекрестного происхождения
Инструменты пробной версии Origin
Особенности пробной версии Origin
Ниже приведены демонстрации API, находящихся в текущих испытаниях.
Узнать больше
- Начните использовать пробные версии Chrome Origin
- Сторонние испытания происхождения
- Руководство по пробным версиям Origin для веб-разработчиков
- Объяснение пробной версии происхождения
- Запуск пробной версии источника
- Процесс запуска новых функций в Chromium
- Намерение объяснить: демистификация процесса доставки Blink
- Используйте пробные версии Origin в Microsoft Edge
- Пробные версии Origin для Firefox