permissions.query для уведомлений возвращает неверное значение при вызове из iframe - PullRequest
0 голосов
/ 01 января 2019

Допустим, у меня есть веб-сайт в одном домене: a.example.com
Я хочу проверить, предоставил ли текущий веб-сайт Клиент разрешения на уведомления в другом домене, скажем b.example.com

Я делал это до сих пор, используя Iframe (межкадровый iframe) для конкретной страницы на b.example.com, которая выполняет следующий запрос разрешений :

return navigator.permissions.query({ name: 'notifications' })
            .then((result) => {
                return result.state;
            });

Приведенный выше код прекрасно работал в Iframe до сих пор, и я не уверен, почему result.state всегда возвращает "prompt", даже если Клиент уже предоставил разрешения.
Но, если вызов Notification.permission показывает "granted".

Стоит упомянуть, если я позвоню navigator.permissions.query({name:'notifications'}) на b.example.com (без iframe, в консоли браузера), он вернет "granted".

Что мне здесь не хватает?

[Я использовал Chrome версии 71.0.3578.98 для этого примера]

ОБНОВЛЕНИЕ 1
Похоже, navigator.permissions.query возвращает значение из a.example.com (домен верхнего уровня) вместо b.example.com, но Notification.permission возвращает значение b.example.com ??

Этоновое поведение API или я что-то упустил?

...