簡體   English   中英

Chrome擴展程序:webNavigation,同時限制權限范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM