1
我需要現在更新我的擴展到清單版本2.0。由於我使用的是webRequest
API,我需要將其更改爲declarativeWebRequest
。declarativeWebRequest和主機規則
問題是我遇到權限問題。
To execute the action "declarativeWebRequest.SetRequestHeader",
you need to request host permission for all hosts.
我的清單看起來像:
"permissions": [
"declarativeWebRequest",
"https://example.com/default.dll"
],
"background": {
"scripts": ["background.js"],
"persistent": false
}
而且我的背景頁面看起來像這樣:
var request_matcher = new chrome.declarativeWebRequest.RequestMatcher({
url: {
urlEquals: "https://example.com/default.dll"
},
resourceType: ["main_frame"],
stages: ['onBeforeSendHeaders']
});
var request_rule = {
conditions: [request_matcher],
actions: [
new chrome.declarativeWebRequest.SetRequestHeader({
name: "User-Agent",
value: "New user agent "
})
]
};
chrome.declarativeWebRequest.onRequest.addRules([
request_rule
]);
如果我改變權限:
"permissions": [
"declarativeWebRequest",
"https://*/*"
],
一切運行。但是,我不相信這是正確的工作方式。如果我需要使用單個頁面或域名,我是否應該向所有網站請求權限?
適合我。你可以在你的問題中發佈一個最小的自包含的例子,它重現了這個問題? –
什麼是您的Chrome版本?我正考慮成爲Windows版Beta(28.0.1500.52)上的一個問題。在Linux上的 –
27.0.1453.110 Beta。您是否已經創建了一個獨立的示例?也許我的測試方式與你實際想要的不同。 –