Я использую в моем расширении как chrome.webRequest.onBeforeRequest, так и chrome.tabs.onCreate слушателей.Я пытаюсь использовать атрибут tab.openerTabId, который вы получаете в tabs.onCreate, чтобы он был доступен ко времени выполнения обратного вызова webRequest.onBeforeRequest, но, похоже, onBeforeRequest запускается до срабатывания tabs.onCreate.Есть ли простой способ обойти это?
var openerTabId;
function checkNewTab(tab) {
openerTabId = tab.openerTabId;
}
function checkRedirects(details) {
//code that I don't want to run until I have openerTabId in those
//instances where web request is due to a new tab being opened
}
function setupNewTabListener() {
chrome.tabs.onCreated.addListener(checkNewTab);
}
function setUpRedirectListener() {
chrome.webRequest.onBeforeRequest.removeListener(checkRedirects);
var filter = createFilter(redirects);
chrome.webRequest.onBeforeRequest.addListener(checkRedirects, filter, ["blocking"]);
}
function setupInitial() {
'''
setupNewTabListener();
setUpRedirectListener();
'''
}
chrome.storage.local.get({
'''
setupInitial();
});