Llamada síncrona en la extensión de Google Chrome

Estoy trabajando en la extensión de Google Chrome, que tiene que bloquear / redirigir algunas solicitudes salientes. Para ello, utilizochrome.webRequest.onBeforeRequest oyente. Para decidir, ya sea para bloquear la solicitud o no, necesito que me envíen información sobre la pestaña. Puedo conseguirlo usandochrome.tabs.get(integer tabId, function callback), pero la devolución de llamada es asíncrona, lo que significa que puede llamarse después de que se devuelva el valor desdeonBeforeRequest oyente.

chrome.webRequest.onBeforeRequest.addListener(function(details){
 chrome.tabs.get(details.tabId, function(tab){
  // get info from tab
 }); 
 // based on info from tab return redirect or not
}), {
 urls: ["<all_urls>"],
 types: ["main_frame"]
}, ["blocking"]);

¿Hay alguna manera de sincronizar la llamada? O tal vez alguna otra opción.

Respuestas a la pregunta(1)

Su respuesta a la pregunta