1

chrome/firefox 拡張機能を取得して Edge で実行しようとしています。

Chrome 拡張機能は、URL が呼び出されるとリスナーを作成します。

    chrome.webRequest.onBeforeRequest.addListener(onBeforeRequest, {'urls': urls, 'types': ['main_frame']}, ['blocking', 'requestBody']);

拡張機能は、さまざまな URL に対してこれらのリスナーを 1000 以上作成し、クロムでは正常に動作します。Edge では、ヒープをオーバーフローしていると思います。

すべての URL に対して 1 つのリスナーを作成し、関数内で for ループを呼び出して URL フィルターを通過し、現在の URL が一致するかどうかを確認する方法はありますか?

たとえば、これは私が試したことです。

    for (var f_key in resourceRecords) {

      var matchedURL = false;
      var jLength = resourceFunctions[f_key]['urls'].length;
        for (var j = 0; j < jLength; j++) { 
          if (resourceFunctions[f_key]['urls'][j].matches(details['url'])) {
            matchedURL = true;
            break;
          }
        }
        if (!matchedURL) {
          continue;
        }

     //Code from the chrome extension
   }

ありがとうございました。あなたたちは素晴らしいです。

4

0 に答える 0