У тебя на каждый onUpdated происходит ajax зпрос и как только он закончен, назначается
ещё один обработчик onMessage, старый при этом никуда не девается. При этом возврат результата в хроме работает только для первого назначенного обработчика, остальные отрабатывают только внутри background ничего назад не передавая.
Т.е. через десять апдейтов у тебя висит десять одинаковых
chrome.extension.onMessage.addListener(function(request, sender,f_callback){
if(request=='ContentScript'){ //проверяется, от того ли окна и скрипта отправлено
alert("ВТОРОЙ АЛЕРТ X="+x);
f_callback("X="+x); //обратное сообщение
})
При этом каждый их них хранит в замыкании результат своего ajax вызова.
Не нужно так делать.)
Что тебе нужно, это:
chrome.extension.onMessage.addListener(function(request, sender,f_callback){
if(request=='ContentScript'){ //проверяется, от того ли окна и скрипта отправлено
$.ajax({ // Запрос к бд
url:"http://mysite/background.php", // Запрос к бд
type:"POST", // Запрос к бд
data:{url:info.url}, // Запрос к бд
dataType:"text", // Запрос к бд
success: function(data){ // Ответ бд
if (data.substring(0,4)=="true"){ // Если url есть в бд получает ответ от сервера
var x = data.substring(data.indexOf("X")+1); // Достаю из ответа X
f_callback("X="+x); //обратное сообщение
}else{
f_callback(false); //обратное сообщение
}
}
})
return true
}
})
без всяких onUpdate