Origin Trials и экспериментальные функции Web Platform
Оценивайте Origin Trials с явной регистрацией, проверкой, резервным путём и откатом.
BotBrowser Team
Нужна структурированная документация по теме Платформа?
Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.
Origin Trial ограничивает эксперимент, а не обещает поддержку всем. Запишите origin, token, канал, срок, задачу, резервный путь и откат. Экспериментальный API не доказывает личность или устройство.
Область регистрации
Читайте руководство Chrome и MDN Web API. Token одного origin не доказывает другой поддомен, iframe или семейство браузеров; страница https://app.example не регистрирует другой embed автоматически.
Runtime-проверка
Проверяйте метод перед вызовом. Разделяйте отсутствие token, отказ разрешения, блокировку политики, rejection и видимое подтверждение. Не анализируйте user-agent.
Таблица решений
| Наблюдение | Решение | Результат |
|---|---|---|
| Token и метод действуют | попробовать один раз | показать прогресс |
| Token отсутствует или истёк | резервный путь | сохранить задачу |
| Разрешение отклонено | объяснить и резервный путь | оставить контроль |
| Вызов отклонён | классифицировать и остановить | показать восстановление |
| Promise выполнен | проверить приложение | подтвердить видимо |
Сбойная fixture
async function fixture() {
const host = document.createElement('div');
host.innerHTML = '<p id="status"></p><button id="fallback" hidden>Резервный путь</button>';
document.body.append(host);
try {
const ok = typeof navigator.share === 'function';
const state = ok
? await navigator
.share({ title: 'Синтетический тест', url: '/fixture' })
.then(() => 'completed')
.catch(() => 'failed')
: 'missing';
host.querySelector('#status').textContent = state === 'completed' ? 'Готово' : 'Резервный путь';
host.querySelector('#fallback').hidden = state === 'completed';
return state;
} finally {
host.remove();
}
}
Состояния регистрации Разделяйте состояния «не зарегистрирован», «доступен», «отклонён», «ошибка» и «завершён». Отсутствующий или истёкший token должен выбрать стабильный путь без скрытого повтора.
Контекст и жест пользователя Если функции нужен жест, включите его в fixture. Для iframe запишите родительский origin, список разрешённых источников и политику разрешений.
Развёртывание и сопровождение
Сравнивайте стабильный и экспериментальный путь на одной синтетической задаче. Проверяйте срок, разрешения, iframe, доступность, фокус и текст резервного пути. После эксперимента удалите token и сохраните короткую квитанцию.
BotBrowser
BotBrowser предоставляет контролируемые contexts для разрешённых journeys и повторной проверки резервного пути. Он не выдаёт маркеры регистрации, не даёт разрешений, не сертифицирует эксперимент и не доказывает завершение сервиса. См. документацию изоляции.
BotBrowser поддерживает контролируемую конфигурацию origin для таких тестов, но не гарантирует активацию token, разрешение или завершение приложения.
Проверка эксперимента как изменения продукта
Проверка эксперимента
Рецензент должен увидеть задачу, стабильный и экспериментальный пути, владельца token и дату удаления без доступа к закрытой панели.
Раздельные свидетельства
Наличие метода или выполненная promise описывают только браузер. Отдельно записывайте видимое подтверждение приложения или квитанцию синтетического сервиса.
Разрешения и доступность
Проверяйте отказ и отмену как обычные ветви. Резервная кнопка должна иметь доступное имя, фокус клавиатуры, объявление состояния и сохранять введённые данные.
Обратимые изменения
Сначала сохраните стабильный путь, затем меняйте token или канал. Откат должен отключать регистрацию, не удаляя резервный путь и данные задачи.
Запись для поддержки
Храните функцию, категорию origin, метку владельца, срок, канал, состояние обнаружения, видимый результат, резервный результат и очистку. Значение token не храните.
Наблюдаемая регистрация Метка конфигурации или манифеста может показать источник эксперимента, не раскрывая token.
Если метки нет, считайте страницу незарегистрированной; наличие конструктора не доказывает регистрацию.
Границы origin Отдельно тестируйте верхнюю страницу, iframe и локальный host, которые поддерживает продукт.
Token для app.example не доказывает разрешение для admin.example или клиентского embed.
Результат приложения
Браузер может выполнить promise, даже если принимающий сервис недоступен.
Дождитесь видимого подтверждения, идемпотентного статуса или квитанции сервиса, прежде чем объявлять задачу завершённой.
Сравнение каналов
При сравнении каналов браузера сохраняйте неизменными сборку приложения и область token.
Сравнивайте одну задачу, резервный текст, порядок фокуса и очистку; разница версии лишь повод для проверки.
Компактная fixture
Ветки отсутствующего token, истечения, отказа разрешения и отклонённого вызова покрывают основные границы.
Добавляйте ветку только для поддерживаемого пользовательского пути с наблюдаемым результатом.
Завершение эксперимента
Перед завершением удалите token из конфигурации и убедитесь, что стабильный путь остаётся доступен.
Сохраняйте короткую синтетическую квитанцию на период поддержки, затем удалите артефакты по обычной политике.
Смотрите также руководство резервного пути API и руководство WPT.
Источники
Похожие статьи
Переведите BotBrowser из исследований в продакшн
Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.