Разрешения сайтов
Когда сайту нужны камера, микрофон, геопозиция или уведомления, он спрашивает — и ответ запоминается. Спрашивает не лист поверх всего приложения: вопрос рисуется полоской в той вкладке, которая спросила. Страница, которой нужна камера, — это одна вкладка из двадцати, и останавливать ради неё остальные девятнадцать было бы браузером, перепутавшим страницу с собой.
Ответ хранится на сайт и на профиль. Камера и микрофон запоминаются отдельно, даже когда сайт просит их вместе: звонок просит оба сразу, а страница, которой потом понадобился только микрофон, не должна спрашивать заново.
В адресной строке
Замок (или глобус) — это меню сайта. Если сайту уже на что-нибудь ответили, в нём можно поменять ответ и забыть выбор для этого сайта; на любом сайте — открыть весь список разрешений.
Забыть куки и данные этого сайта — там же. Сайт забывает вход, корзину и всё, что хранил в этом профиле, вместе со своими поддоменами; остальные сайты остаются как были, а открытые страницы этого сайта перезагружаются. Подтверждения нет.
Красная камера и красный микрофон появляются, только пока устройство реально работает, — у каждого свой значок, так что в звонке их два. Клик выключает именно это устройство, ещё клик — возвращает: можно выключить камеру и остаться слышным. страница узнаёт, что её выключили, и звонок при этом не разрывается — ровно то, что делает кнопка mute в самом звонке. А вот запретить устройство из меню сайта именно останавливает его: ответ, который начнёт действовать со следующего звонка, — не ответ.
Весь список
Конфигурация ▸ Приватность ▸ Разрешения сайтов — все сайты, которым что-нибудь отвечали, по всем профилям, с переключателем на каждое устройство и крестиком «пусть спросит снова». Забыть все сбрасывает разом.
Приватный профиль свои ответы держит, пока открыт, и в базу не пишет.
Ниже, под заголовком User-Agent, — сайты, которым браузер представляется
иначе. Обычно сайт видит строку Safari; если он и по ней ошибается, впишите
сайт (example.com покрывает и поддомены) и строку, которую ему нужно получить,
и нажмите Добавить. Крестик убирает строку, и сайт снова видит Safari.
Действует во всех профилях, со следующей загрузки страницы.
Система спрашивает первой
Камера и микрофон на macOS закрыты системным разрешением, и системный вопрос приходит раньше — один раз на всё приложение, а не на каждый сайт. Так что самый первый в жизни запрос стоит двух ответов, а каждый следующий — не больше одного.
С геопозицией порядок обратный: сначала сайту отвечаете вы — Разрешить или Запретить в полоске, — и только после первого «Разрешить» macOS один раз спрашивает про всё приложение. Если службы геолокации для Savoia выключены (Системные настройки ▸ Конфиденциальность и безопасность ▸ Службы геолокации), сайт получит ответ «позиция недоступна», сколько бы ему ни разрешали.
Запрет геопозиции из меню сайта действует со следующего запроса: страница, которая уже следит за позицией, перестанет после перезагрузки.
Уведомления
Сайт может попросить разрешения присылать уведомления — но только в ответ на ваше действие на странице, например на нажатие кнопки. Вопрос приходит той же полоской: Разрешить или Запретить. Разрешённый сайт показывает уведомления через Центр уведомлений macOS; перед самым первым система один раз спросит про всё приложение. Нажатие на уведомление открывает Savoia на той вкладке, которая его прислала.
Если уведомления не появляются, хотя сайту разрешено, проверьте Системные настройки ▸ Уведомления ▸ Savoia и режим фокусирования.
В приватном профиле уведомлений нет. Веб-push — уведомления от сайта, который не открыт, — тоже нет: его Apple открывает только своим приложениям.
Диалоги самой страницы
alert(), confirm(), prompt() и выбор файла работают как везде. Окно
появляется в той вкладке, чья страница его вызвала, и называет сайт — чтобы было
видно, кто спрашивает. Закрыли вкладку — её окна закрываются вместе с ней. Когда
на странице работает агент, ответить может и он (агенты).
Демонстрация экрана
Когда сайт просит показать экран, macOS сама открывает окно выбора: весь экран или одно окно. Этот выбор и есть разрешение, поэтому ничего не запоминается — сайт спросит снова в следующий раз, как в любом браузере. Пока показ идёт, в адресной строке горит свой значок, рядом с камерой и микрофоном, и клик по нему ставит на паузу только показ.
Вкладка, которая показывает экран или ведёт звонок, не выгружается из памяти, даже если перейти на другую.
Чего пока нет
- веб-push — Apple открывает его только своим приложениям;
- Apple Pay на сайтах — кнопки оплаты Apple Pay нет или она не работает: нужных для неё функций WebKit страницам вне Safari сам не даёт.
Геопозиция и уведомления сделаны через недокументированные функции WebKit, которые могут измениться с любым обновлением macOS.