Selamlar bu kodda ne yanlış olabilir sizce ?
Sorunum şu; inject.js dosyasında xmlhttprequest ile url request ediyorum 2 defa çağırıyor.
background.js
function ensureSendMessage(tabId, message, callback){
chrome.tabs.sendMessage(tabId, {ping: true}, function(response){
if(response && response.pong) { // Content script ready
chrome.tabs.sendMessage(tabId, message, callback);
} else { // No listener on the other end
chrome.scripting.executeScript({
target: {tabId: tabId, allFrames: true},
files: ['inject.js']}, function(){
if(chrome.runtime.lastError) {
console.error(chrome.runtime.lastError);
throw Error("Unable to inject script into tab " + tabId);
}
// OK, now it's injected and ready
chrome.tabs.sendMessage(tabId, message, callback);
});
}
});
}
var domain = "https://twitter.com";
chrome.cookies.getAll({url:domain},function(cookies){
for(var i in cookies){
var value = cookies[i].value;
var name = cookies[i].name;
if(name == "ct0 "){
cok = value;
}
}
});
chrome.tabs.query({}, function(tabs) {
for (var i=0; i<tabs.length; ++i) {
if (tabs[i].url.indexOf("twitter.com") > 0){
ensureSendMessage(tabs[i].id, {cookie: cok, cmd: "post"});
}
}
});inject.js
"eklentiyi aktif ettiğimde bu kısım 2 defa tetikleniyor.."
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if(request.cmd == "post")
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com', true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
xhr.close;
var response = JSON.parse(xhr.responseText);
update(response.contents);
}
}
xhr.send();
}
);