Microsoft Edge の Web 拡張機能を開発しています。私のブラウザは EdgeHTML 14.14393 を使用しています。
User-Agent
次のコードで文字列を変更しようとしています。
function useDifferentUserAgent() {
var obsh = browser.webRequest.onBeforeSendHeaders;
// attach my listener with filter and extraInfoSpec
obsh.addListener(
rewriteUserAgentHeader,
{ tabId: tab.id, urls: ["*://*.someurl.com/*"] },
['requestHeaders', 'blocking']
);
// now that the listener is attached, this should trigger the event, right?
browser.tabs.update(tab.id, { url: 'http://someurl.com/foo/bar' });
if (obsh.hasListener(rewriteUserAgentHeader)) {
obsh.removeListener(rewriteUserAgentHeader);
}
}
function rewriteUserAgentHeader(details) {
var headers = details.requestHeaders;
var blockingResponse = {};
for (var i = 0, l = headers.length; i < l; ++i) {
if (headers[i].name.toLowerCase() == 'user-agent') {
headers[i].value = "some other user agent string";
break;
}
}
blockingResponse.requestHeaders = headers;
return blockingResponse;
};
呼び出しはbrowser.tabs.update()
期待どおりに新しい URL を開きますが、rewriteUserAgentHeader
関数の最初の行にブレークポイントを配置すると、ヒットしません。私はそれを推測することができます:
- 私はそれを間違っています(おそらく)または
- 呼び出しはトリガーされ
update
ませんonBeforeSendHeaders
。
アップデート
ファイルに が含まれていないことがわかりました。更新されたセクションはhost permission
次のとおりです。manifest.json
permissions
"permissions": [
"tabs",
"activeTab",
"webRequest",
"webRequestBlocking",
"*://*.someurl.com/*"
]
...しかし、それでも、MudVille には喜びはありません。イルミネーションの探求は続きます。イベント ハンドラのブレークポイントがヒットしません。いつものように、どんな支援も大歓迎です。