2013-06-27 31 views
1

我需要現在更新我的擴展到清單版本2.0。由於我使用的是webRequest API,我需要將其更改爲declarativeWebRequestdeclarativeWebRequest和主機規則

問題是我遇到權限問題。

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://*/*" 
], 

一切運行。但是,我不相信這是正確的工作方式。如果我需要使用單個頁面或域名,我是否應該向所有網站請求權限?

+0

適合我。你可以在你的問題中發佈一個最小的自包含的例子,它重現了這個問題? –

+0

什麼是您的Chrome版本?我正考慮成爲Windows版Beta(28.0.1500.52)上的一個問題。在Linux上的 –

+0

27.0.1453.110 Beta。您是否已經創建了一個獨立的示例?也許我的測試方式與你實際想要的不同。 –

回答

0

我知道這個問題。

"permissions": [ 
    "declarativeWebRequest", 
    "*://*/*" 
], 

Salut。