0

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関数の最初の行にブレークポイントを配置すると、ヒットしません。私はそれを推測することができます:

  1. 私はそれを間違っています(おそらく)または
  2. 呼び出しはトリガーされupdateませんonBeforeSendHeaders

アップデート

ファイルに が含まれていないことがわかりました。更新されたセクションはhost permission次のとおりです。manifest.jsonpermissions

"permissions": [
  "tabs",
  "activeTab",
  "webRequest",
  "webRequestBlocking",
  "*://*.someurl.com/*"
]

...しかし、それでも、MudVille には喜びはありません。イルミネーションの探求は続きます。イベント ハンドラのブレークポイントがヒットしません。いつものように、どんな支援も大歓迎です。

4

1 に答える 1