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
}
ありがとうございました。あなたたちは素晴らしいです。