Назад к блогу
Платформа

Поддержка функции браузером не равна качеству функции

Наличие API браузера лишь начало надёжного, доступного и учитывающего приватность пользовательского сценария.

BotBrowser Team

Документация

Нужна структурированная документация по теме Платформа?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

Проверка возможности ведёт к проверенному результату, видимому пользователю

Таблица поддержки показывает, что версия должна предоставлять функцию. Она не обещает успех вызова в этом origin, выдачу разрешения или завершение задачи. BotBrowser может повторить разрешённый сценарий в контролируемом context, но не выдаёт разрешения и не подтверждает результат приложения. Качество функции - это расстояние между заявленной возможностью и надёжным, понятным результатом.

Три уровня свидетельств

Изучите MDN Browser Compatibility Data, примечания, flags, требования безопасного контекста и частичную поддержку, а также контракт MDN Web APIs и соответствующую спецификацию. Проверка во время выполнения отвечает только на вопрос, что может попробовать эта страница сейчас. Она не устанавливает личность и не доказывает завершение операции приложения.

Для каждого необязательного API фиксируйте контекст, проверку, разрешение, исключение, видимый успех и ошибку, владельца запасного пути. Метод в navigator означает «можно попробовать», а не «завершено».

Таблица решений качества

НаблюдениеРешениеПроверка качества
Метод и контекст доступныОдин раз попробовать после намеренияПоказывать прогресс и отмену
Метод отсутствует или заблокированВыбрать эквивалентный запасной путьСохранить данные и клавиатурный доступ
Разрешение отклоненоОбъяснить и предложить запасной путьНе повторять запрос циклически
Вызов отклонён или истёкКлассифицировать ограниченную ошибкуНе называть сбой сервиса отсутствием поддержки
Вызов браузера завершёнПроверить результат приложенияПодтверждать только видимое пользователю

Детерминированная failure fixture

На синтетической странице проверьте отсутствующий, отклонённый, ошибочный и задержанный состояния. Подменяйте только собственный API и проверяйте видимый элемент:

async function shareWithFallback() {
  const host = document.createElement('div');
  host.innerHTML = '<p id="status" role="status"></p><button id="fallback" hidden>Скопировать ссылку</button>';
  document.body.append(host);
  const status = host.querySelector('#status');
  const fallback = host.querySelector('#fallback');
  if (typeof navigator.share !== 'function') {
    fallback.hidden = false;
    status.textContent = 'Используйте запасной путь';
    host.remove();
    return 'missing';
  }
  try {
    await navigator.share({ title: 'Синтетический объект', url: '/fixture' });
    status.textContent = 'Запрос принят; проверьте видимый результат';
    return 'accepted';
  } catch (error) {
    fallback.hidden = false;
    status.textContent = error?.name === 'NotAllowedError' ? 'Общий доступ отменён' : 'Используйте запасной путь';
    return 'fallback';
  } finally {
    console.assert(status.textContent.length > 0);
    host.remove();
  }
}

Fixture доказывает ветвление и очистку, но не универсальную совместимость, состояние аккаунта или транзакцию. Ограничьте таймаут и повторы и не собирайте посторонние свойства браузера.

Прогрессивное улучшение и BotBrowser

Сохраняйте задачу доступной через копируемый URL, обычное поле и клавиатурное управление. Сохраняйте черновик, переводите фокус и объясняйте различия. Перепроверяйте данные после изменений версии, разрешений, origin или политики.

BotBrowser предоставляет контролируемые контексты для разрешённых сценариев и повторяемых синтетических проверок. Он не гарантирует API для каждого origin, не выдаёт разрешения, не делает небезопасный контекст безопасным и не заменяет доступность или запасной путь приложения. Успешная синтетическая проверка не доказывает запись на сервере или бизнес-транзакцию. Разделяйте свидетельства браузера, разрешения и сервера.

BotBrowser capability and limitation

См. также события WebDriver BiDi и Credential Management.

Operational checklist

Определите задачу, минимальный результат, основной и запасной путь. Запишите контекст, разрешение, видимое состояние и владельца; используйте данные совместимости для планирования, а не обещаний. Разделяйте отсутствует, отклонено, ошибка, принято и завершено. Применяйте синтетические данные, ограниченные повторы и очистку в finally; проверяйте безопасный контекст, фокус, клавиатуру и доступные сообщения. Храните только нормализованное состояние, версию источника и следующее действие. Разделяйте событие браузера, разрешение и подтверждение сервера.

Designing a useful support contract. Определите действие, минимальный результат, запасной путь и границу успеха до выбора матрицы. Запишите источник, контекст, разрешение, fixture, владельца и дату проверки, без профилей и частных журналов. Состояния разрешений и политики. Разрешение зависит от пользователя и политики. Проверьте отказ, отзыв, iframe и поздний результат, сохраните черновик и не повторяйте запросы циклически. Measuring visible outcomes without surveillance. Храните ограниченное состояние, заявленную версию и видимый элемент, не собирайте списки navigator, шрифты, рендерер, аккаунт или местоположение. Release review and incident triage. Сравнивайте одинаковые синтетические входы и разделяйте API, контекст, разрешение, браузер и сервер до изменения матрицы или текста. Quality contract maintenance. При изменении origin, iframe, политики или доступности обновите запись и одно состояние fixture, подтвердив владельца запасного пути.

Источники

#API Браузера#Совместимость#Качество#Прогрессивное Улучшение

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.