navigator.serviceWorker へのアクセスでエラーすることがある
Closed this issue · 1 comments
k08045kk commented
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 は発生しない模様)
k08045kk commented
次の変更でどうにかなる模様。理由は不明。(ReadOnlyオブジェクト?、なぜ一部サイトでしか発生していないか謎)
navigator.serviceWorker.RejectServiceWorkerKey = '.';
↓
window.RejectServiceWorker = {key: '.'};
上記で、登録拒否は動作する。
ただし、登録解除は動作しない。(仕様ということにする?)