[英]Chrome Extension: webNavigation while limiting permissions scope
我有一個Chrome擴展程序,該擴展程序會在某些網站的網址中監視額外的查詢參數。 我正在向新網站添加功能,而我遇到的問題是該網站重定向到另一個URL,並在加載內容腳本之前刪除了我的自定義查詢。
看來我可以通過在后台腳本中使用webNavigation API並為chrome.webNavigation.onCommitted添加偵聽器來解決此問題。 問題是,通過在清單中添加webNavigation權限,我現在正在尋求“讀取瀏覽歷史記錄”的權限。 我已經花了很多時間試圖將擴展權限的范圍限制到某些站點,而且我真的不想向用戶要求像這樣的純白權限。
我在SO上找到了另外兩個關於此問題的線程,但是在一個中 ,用戶發現了一種我認為不適合我的解決方法(盡管有人建議采取解決方法,但是我很高興) 另一個建議通過向偵聽器聲明中添加過濾器,它將限制權限請求。 該答案未被接受為正確答案,實際上,無論是否具有過濾器,我都沒有看到任何權限差異。
是否根本無法實現我想做的事並且還限制權限警告的范圍? 還是我錯過了什么? 謝謝。
我的webNavigation偵聽器聲明:
chrome.webNavigation.onCommitted.addListener(function(e) {
//Can dig out my query parameter from e
console.log(e);
},{
url: [{hostContains: "[NAME OF HOST]"}]
});
我能夠找出適合我的情況的解決方法。 我認為這並不適合所有人,但是使用webRequest API可以讓我在重定向之前攔截頁面加載請求,並存儲查詢字符串以備后用。 除了我通過manifest.json文件中的content-script> matches數組已經要求的權限之外,webRequest API並沒有要求任何權限,這導致Chrome要求“在數字上讀取和更改您的數據”網站”,然后列出這些網站。
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
//details.url contains my query string
var url = details.url;
return;
}, {
urls: ['*://*.mysite.com/*'],
types: ['main_frame'] //Filters out all the js,css,ajax,etc requests
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.