k08045kk/RejectServiceWorker

navigator.serviceWorker へのアクセスでエラーすることがある

Closed this issue · 1 comments

Uncaught SecurityError: Failed to read the 'serviceWorker' property from 'Navigator': Service worker is disabled because the context is sandboxed and lacks the 'allow-same-origin' flag.

要望

CSP 保護により、 Service Worker の侵入を許したページサンプルがあれば、 URL の提供をお願い致します。

備考

CORS / CSP 等が原因の場合、 chrome.declarativeNetRequest / chrome.webRequestBlocking で保護を打ち消せば拒否できる。

ミスるとユーザーがセキュリティリスクに晒される。
Chrome 限定?(Firefox は発生しない模様)

次の変更でどうにかなる模様。理由は不明。(ReadOnlyオブジェクト?、なぜ一部サイトでしか発生していないか謎)
navigator.serviceWorker.RejectServiceWorkerKey = '.';

window.RejectServiceWorker = {key: '.'};

上記で、登録拒否は動作する。
ただし、登録解除は動作しない。(仕様ということにする?)