С постепенным выпуском Chrome 116 мы добавим параметр «Разрешить в этот раз» в запросы на получение разрешений. Наша цель — облегчить людям использование мощных веб-возможностей на их собственных условиях. Параметр «Разрешить это время» изначально будет доступен на рабочем столе для некоторых наиболее распространенных разрешений: геолокации, камеры и микрофона. Запросы разрешений для других возможностей и в мобильном Интернете на данный момент не изменились, но могут измениться в будущем.
Если вы владелец сайта, просмотрите «Воздействие и рекомендации» и попробуйте демо-версию .
Новый UX для разрешений
Разрешения UX до Chrome 116
![Запрос разрешения показывает только блокировку и разрешение.](https://developer.chrome.com/static/blog/one-time-permissions/images/permission-prompt-showing-4cfa5caa7d33f.png?authuser=5&hl=ru)
Пользователям предлагаются три варианта:
- Разрешить : Постоянное разрешение.
- Блок : Постоянная блокировка.
- Нажатие кнопки x : Временная блокировка. Сайт может запросить у пользователя еще раз позже, максимум три раза.
Разрешениями можно управлять с помощью элементов управления сайтом в адресной строке или через настройки сайта .
Новые разрешения UX из Chrome 116
![Запрос разрешения с новой одноразовой опцией.](https://developer.chrome.com/static/blog/one-time-permissions/images/permission-prompt-the-o-b78a728d235c9.png?authuser=5&hl=ru)
Пользователям предлагаются четыре варианта:
- Разрешить на этот раз : Временно разрешить.
- Разрешить при каждом посещении : Постоянно разрешать.
- Не разрешать : постоянная блокировка.
- Нажатие кнопки x : Временная блокировка.
Когда пользователи выбирают Разрешить в этот раз , предоставленное разрешение является временным и также называется однократным разрешением . Его продолжительность ограничена текущим продолжающимся взаимодействием с веб-приложением.
Преимущества для пользователя и UX-дизайн «Разрешить это время»
Разрешить это время предоставляет пользователям:
- Повышенный контроль. Исследование пользователей Chrome показало, что пользователи часто не готовы принимать постоянное решение о разрешениях веб-сайта, пытаясь оценить, получают ли они пользу в обмен на предоставление разрешений. Предложение однократного разрешения удовлетворяет эту потребность и делает разрешение доступа менее рискованным.
- Больше ясности. Параметры «Явное разрешение в этот раз» и «Разрешить при каждом посещении» дают понять, что один из вариантов является временным, а другой — постоянным.
Разовые разрешения в других браузерах
В Интернете одноразовые разрешения поддерживаются во многих браузерах, включая Safari и Firefox. Чтобы увидеть, как они работают на вашем устройстве, поэкспериментируйте с https://permission.site/one-time . Обязательно попробуйте разрешения геолокации, камеры и микрофона, поскольку они могут иметь особое поведение.
Например:
- В Safari 16 для настольных компьютеров геолокация по умолчанию выполняется единоразово (до следующей навигации). Пользователь может выбрать сохранение доступа в течение 24 часов, установив флажок.
- В Firefox 115 для настольных компьютеров разрешения на геолокацию, камеру и микрофон по умолчанию являются одноразовыми. Пользователь может выбрать постоянный доступ, установив флажок.
Влияние и рекомендации
Влияние разовых разрешений:
- Введение одноразовых разрешений не влияет на разрешения, которые пользователи ранее предоставляли постоянно.
- Как только пользователь принимает решение по запросу разрешения, на время его посещения состояние разрешения либо предоставляется, либо отклоняется. Разовые разрешения в этом отношении не имеют никакого значения.
- Однако если пользователь выберет Разрешить в этот раз , он снова увидит запрос разрешения при следующем посещении.
Чтобы обеспечить разовые разрешения, мы рекомендуем владельцам сайтов выполнить следующие действия:
- Убедитесь, что ваша реализация соответствует передовым практикам в отношении разрешений. Обзор лучших практик .
- Узнайте, когда истекает срок действия одноразовых разрешений. Подробности см. в разделе Срок действия разовых разрешений .
- Узнайте, как API разрешений ведет себя для одноразовых разрешений и как наблюдать за сроком действия. Подробности см. в Permissions API .
Лучшие практики
Предоставление этого времени может повысить вероятность того, что люди будут предоставлять разрешения на тестирование возможностей, но это также может снизить их готовность предоставлять постоянный доступ. Это делает еще более важным следовать передовому опыту.
- Прежде чем запрашивать разрешения, предоставьте необходимый контекст. Объясните своим пользователям, почему они выиграют от этой возможности.
- Запрашивает разрешения в подходящий и ожидаемый момент. В идеале позвольте вашим пользователям выразить свое намерение использовать определенную возможность в удобном для них темпе.
- На время посещения пользователя обеспечивайте одинаковый опыт независимо от того, выбрал ли пользователь одноразовый или постоянный вариант.
Ознакомьтесь с дополнительными рекомендациями в Permission UX .
Срок действия разовых разрешений
По умолчанию все веб-разрешения привязаны к источнику , который можно рассматривать как отдельное приложение. С помощью параметра «Разрешить это время » пользователь предоставляет одноразовое разрешение источнику. По сути, одноразовые разрешения истекают, когда пользователь на некоторое время перестает активно взаимодействовать с этим источником. Это означает, что сайт может продолжать использовать эту возможность, если пользователь ненадолго переключится на другую веб-страницу на другой вкладке, а затем вернется.
Более подробно, срок действия единовременных разрешений истекает при выполнении любого из следующих условий:
- Страница была закрыта, с нее был выполнен переход или удалена . Это включает в себя закрытие Chrome.
- С момента предоставления разрешения прошло 16 часов.
- Пользователь вручную отзывает разрешение (например, в элементах управления сайтом ) или разрешение переопределяется с помощью политики предприятия.
- Страница находилась в фоновом режиме не менее 5 минут, за исключением случаев, когда функциям разрешено работать в фоновом режиме, например камере или микрофону. В этом случае, пока сайт использует эту возможность, Chrome отображает индикатор полосы вкладок и не запускает 5-минутный таймер до тех пор, пока страница не перестанет использовать эту возможность. Обратите внимание, что 16-часовой таймер все еще работает.
Вкладка «Фон»
Вкладка браузера находится на заднем плане , когда она не на переднем плане. Вкладка находится на переднем плане, если она видна в не свернутом окне браузера.
В Chrome некоторые функции, такие как геолокация, могут работать только на вкладке переднего плана. Им не разрешено работать на фоновой вкладке. Другие, такие как камера и микрофон, могут работать на фоновой вкладке.
Индикатор полосы вкладок
Возможности, которые продолжают работать, когда вкладка находится в фоновом режиме, имеют индикатор полосы вкладок . Например, камера имеет индикатор полосы вкладок.
![Вкладка с красной точкой.](https://developer.chrome.com/static/blog/one-time-permissions/images/a-tab-a-red-dot-ffdcc0b012d03.jpg?authuser=5&hl=ru)
Для геолокации не требуется индикатор полосы вкладок, поскольку доступ к геолокации приостанавливается, как только страница переходит в фоновый режим.
Примеры
- Геолокация : пользователь находится на
example.com
и предоставляет однократный доступ к геолокации. Пользователь переключается на другую вкладку. Это делаетexample.com
фоновой вкладкой. Доступ к геолокации немедленно приостанавливается, поскольку Chrome не разрешает фоновый доступ к геолокации, но единоразовое разрешение все еще действует. Если пользователь вернется наexample.com
в течение пяти минут, страница сможет возобновить доступ к геолокации (и 5-минутный таймер истечения срока действия сбрасывается). Если они этого не сделают, срок действия единовременного разрешения истекает. - Камера/микрофон : пользователь находится на
example.com
и предоставляет одноразовый доступ к камере. Пользователь переключается на другую вкладку. Это делаетexample.com
фоновой вкладкой. Доступ к камере может продолжаться, поскольку Chrome позволяет продолжать доступ к камере в фоновом режиме. Chrome продолжает отображать индикатор полосы вкладок для камеры, пока она используется, чтобы держать пользователя в курсе. В какой-то момент сайт может принять решение прекратить доступ к камере, и в этом случае запускается 5-минутный таймер истечения срока действия. Через 5 минут без доступа к камере срок действия одноразового разрешения истекает.
API разрешений
Чтобы запросить статус разрешений API, вы можете использовать API разрешений :
- Если пользователь выбирает «Разрешить на этот раз» , статус Permission API устанавливается на
granted
. Это означает, что одноразовое разрешение с неистекшим сроком действия и постоянное разрешение неотличимы и имеют один и тот же статус:granted
. - По истечении срока действия одноразового разрешения статус снова изменится на
prompt
. - Чтобы наблюдать за истечением срока действия одноразового разрешения, зарегистрируйте обработчик событий
PermissionStatus.onchange
.
Демо
- Откройте Chrome 116 или новее на настольном компьютере.
- Откройте
chrome://flags/#one-time-permission
и выберите «Включить» . Перезапустите Хром. Этот шаг принудительно включает одноразовые разрешения, если они еще не развернуты в вашем браузере Chrome. - Откройте https://permission.site/one-time .
- Нажмите кнопку «Геолокация» .
- Обратите внимание на новый запрос на одноразовое разрешение.
- Выберите Разрешить на этот раз .
- Откройте элементы управления сайтом . Обратите внимание, что вы можете управлять одноразовым разрешением.
- Закройте вкладку https://permission.site/one-time . Убедитесь, что ни одна другая вкладка для этого источника не открыта.
- Откройте https://permission.site/one-time в новой вкладке.
- Откройте элементы управления сайтом . Перейдите в настройки сайта .
- Обратите внимание, что разрешение геолокации теперь вернулось в исходное состояние: «Спрашивать» (по умолчанию) .
Выводы и отзывы
Одноразовые разрешения предлагают пользователям больше выбора, а новый пользовательский интерфейс разрешений Chrome обеспечивает более единообразный пользовательский интерфейс разрешений в разных браузерах и платформах.
Если у вас возникнут какие-либо проблемы с одноразовыми разрешениями, отправьте новую проблему crbug для запросов разрешений .
Благодарности
Спасибо Рэйчел Эндрю , Серене Чен, Балашу Энгеди, Мариан Харбах, Флориану Джеки и Томасу Штайнеру за рецензирование этой статьи.