Summary

  • Первый публичный проект W3C Feature Policy 2019 года позволял странице ограничивать функции браузера: полноэкранный режим, геолокацию, камеру и микрофон.
  • Проект Permissions Policy от сентября 2026 года соединяет заголовок ответа страницы, атрибут allow конкретного iframe и наследование правил для вложенного документа.

Представьте веб-страницу маленьким театром. На одной сцене выступает карта, на другой — видеоплеер, в отдельной комнате работает платёжная форма. Карте нужен адрес зрителя, плееру — весь экран, видеосвязи — камера. Пригласить артиста на сцену и выдать ему ключ от каждой двери театра — разные способы управлять заведением.

Первый опубликованный проект Feature Policy от апреля 2019 года предложил вывесить правила в HTTP-ответе. Заголовок Feature-Policy мог закрыть функцию для документа и его потомков либо ограничить её определёнными источниками. В примерах W3C полноэкранный режим и геолокация отключаются, а камера и микрофон выделяются выбранному встроенному источнику. Решение владельца страницы стало частью сообщения, которое получает браузер.

Проект W3C от сентября 2026 года прямо сообщает: прежде спецификация называлась Feature Policy. Текущий заголовок Permissions-Policy использует структурированный словарь. Пример fullscreen=(), geolocation=() задаёт пустые списки для двух функций: ими не пользуется документ и его потомки. Если главная дверь закрыта, объявление на двери боковой комнаты не создаст запасной вход.

Для нужной карты можно сделать отдельное приглашение. В её iframe пишут allow="geolocation". Общий заголовок очерчивает допустимые источники, атрибут выбирает конкретную комнату. В примере из проекта 2026 года источник гостя включён в общую политику, а разрешение направлено нужному фрейму. Соседнее видео не получает ключ от геолокации только потому, что занимает ту же страницу.

Правила передаются по наследству. У каждой контролируемой функции есть список источников по умолчанию. Родительский документ объявляет политику в ответе. Фрейм добавляет политику контейнера. Когда дочерний документ создаётся или меняет адрес, браузер вычисляет его начальное состояние из обеих частей. Дочерняя страница может устанавливать собственные правила в доставшихся ей пределах. Запрет родителя не превращается в допуск от одной фразы, написанной внутри гостевой комнаты.

Поэтому вопрос «он же внутри iframe?» никогда не исчерпывал тему. Фрейм задаёт отдельный контекст просмотра, но функции браузера влияют на человека за экраном. Геолокация, камера, микрофон и полноэкранный режим — это действия, а не рисунки. Владелец страницы хотел бы пользоваться чужими компонентами и одновременно выбирать возможности каждого. Политика переводит такой выбор в правило, исполняемое браузером.

Текст 2026 года даёт и возможность узнать результат. Документ может спросить свой объект permissionsPolicy, а элемент iframe — свою политику. Карта без геолокации предложит поле для ввода адреса; видеовиджет без камеры уберёт кнопку съёмки. Этот запрос показывает доступность функции по политике. Согласие посетителя поделиться данными и наличие устройства наступают как отдельные решения.

В хронике публикаций W3C рабочие проекты идут вплоть до сентября 2026 года. За эти годы страницы научились собирать целый дом из чужих комнат, а браузер обзавёлся более сильными возможностями. Понадобились правила для всего дома и пропуск для каждого гостя.