Firefox 기본 메시지를 사용하여 URL 관리자를 만들려고합니다. 문제는 네이티브 응용 프로그램에서 답신을 보내면 onBeforeRequest 수신기가 이미 요청을 릴리스 했으므로 리디렉션이 발생하지 않는다는 것입니다. 응답 내선이 최대 2 초 동안 대기하도록하고 응답이 "0"이면 요청을 리디렉션 할 수 있습니까?Firefox 기본 메시지를 사용하여 URL 검사
var port = browser.runtime.connectNative("ping_pong");
function inspectURL(requestDetails) {
console.log("Loading: <" + requestDetails.url + ">");
port.postMessage(requestDetails.url);
console.log("Posting complete <" + requestDetails.url + ">");
}
port.onMessage.addListener((response) = > {
console.log("Received: <" + response + ">");
if (response == "1")
{
console.log("Good url!!!");
}
else
{
console.log("BAD url - redirecting!!!");
return {
redirectUrl: "https://38.media.tumblr.com/tumblr_ldbj01lZiP1qe0eclo1_500.gif"
};
}
});
browser.webRequest.onBeforeRequest.addListener(
inspectURL,
{ urls: ["<all_urls>"] },
["blocking"]
);