Вы не можете вернуть значение из асинхронной функции. Вместо этого вам нужно передать значение следующей функции (обратный вызов).
Ваш код должен выглядеть следующим образом:
function getURL(action, callback){
chrome.extension.sendRequest(
{
req: "geturl",
act: action
},
function(response)
{
callback(response.reply);
}
);
}
Использование:
getURL("some_action", function(reply) {
console.log("reply is:", reply);
});
background.html:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.req == "geturl") {
sendResponse({reply:"reply from background"});
}
});