let backgroundPage = browser.extension.getBackgroundPage(); var data; let i=0; /* data = readUrl() .then(function(data){ browser.browserAction.onClicked.addListener(function(event1){ browser.tabs.create({"url": "home.html"},function(tab){ browser.runtime.onMessage.addListener(function(request,sender,sendResponse){ handleMessages(request,sender,sendResponse,tab,data); }); }); }); }); */ browser.browserAction.onClicked.addListener(function(event1){ browser.tabs.create({"url": "home.html"},function(tab){ browser.runtime.onMessage.addListener(function(request,sender,sendResponse){ handleMessages(request,sender,sendResponse,tab); }); }); }); function handleMessages(message,sender,sendResponse,tab){ if(message === "Button_clicked") { browser.tabs.executeScript(tab.id,{ file:"spawn.js" }); console.log(tab); console.log(data); } else if(message === "Content_Loaded") { console.log("Background: Received Content_Loaded"); // nextUrl(data,tab,i); if(i===0) { browser.tabs.sendMessage(tab.id,"Init"); } else { browser.tabs.sendMessage(tab.id,data.subscriptions[i].url); } console.log(i); } else if(message === "finished") { i++; console.log("background: received next from spawn.js"); console.log("URL:",data.subscriptions[i].url); browser.tabs.update(tab.id,{url : data.subscriptions[i].url}); browser.tabs.executeScript(tab.id,{ file:"spawn.js" }); browser.tabs.sendMessage(tab.id,data.subscriptions[i].url); } else if(message.status == "FileChange") { let file = message.file; const reader = new FileReader(); reader.addEventListener("load",()=>{ data = JSON.parse(reader.result); console.log(data); },false); if(file) { reader.readAsText(file); } } } function readUrl() { let data; return new Promise(resolve => { const filePath = "newpipe_subscriptions_202403101004.json"; var localURL = browser.extension.getURL(filePath); fetch(localURL).then((res) => { if(!res.ok){ throw new Error (`res error`); } return res.json(); }) .then((data) => { for(let i=0;i console.error("couldnt fetch data",error)); }); }