###前提・実現したいこと
webExtension で
http://www.example.com/* から http://another.example.com/* へのページ遷移を拒否したい
###発生している問題・エラーメッセージ
chrome.webRequest.onBeforeRequest
では、送信元情報が得られないので
chrome.webRequest.onBeforeSendHeaders
にイベントリスナを登録したが、うまくページ遷移を拒否できない
ログを見ると、Referer付きのアクセスはcancelできているが、その後、Refererの無い状態で再度リクエストされて画面遷移してしまう。
見た目は、ブロックされている旨が表示され、その状態でreloadされてページが表示されているように見える。
###該当のソースコード
javascript
1chrome.webRequest.onBeforeSendHeaders.addListener( 2 function(details){ 3 if(details.type !="main_frame" && details.type != "sub_frame"){ 4 return; 5 }; 6 for(var i=0;i<details.requestHeaders.length;i++){ 7 if ((details.requestHeaders[i].name == "Origin" || 8 details.requestHeaders[i].name == "Referer") && 9 (details.requestHeaders[i].value.indexOf("://www.example.com/") !=-1)){ 10 if(details.url.indexOf("://another.example.com/")!=-1){ 11 return {cancel: true }; 12 } 13 } 14 } 15 }, 16 {urls:["<all_urls>"]}, 17 ["blocking","requestHeaders"]); 18 19
###環境
Windows 10
Google Chrome 60.0.3112.101
あなたの回答
tips
プレビュー