let backgroundPage = browser.extension.getBackgroundPage(); //let tab; const pass_data = {urls:"urls",tab:"tab_id"} readUrl(); //on addon click load extension page // function Setup(data) { let i=0; browser.browserAction.onClicked.addListener(create); } var create = (function(data){ let i=0; browser.tabs.create({"url": "home.html"},function(tab){ browser.runtime.onMessage.addListener((message)=>{ if(message === "Button_clicked") { nextUrl(data,tab,i); console.log("pass tab data to run, in promise"); console.log(tab); } }); }); }); function failure(value) { console.log("tabs.create returned a failure"); } async function nextUrl(data,tab,i) { let count_urls = data.subscriptions.length; for(i=0;i{ setTimeout(() => { console.log(tab.url); if(tab.url === url){ console.log("Resolved wait for tab)"); resolve(); } },5000); }); } function sendMessageToContent(data,tab,i) { return new Promise(resolve => { browser.tabs.executeScript(tab.id,{ file:"spawn.js" }) .then(function() { console.log("background.js: received start signal..."); console.log("backgroundscript received start signal from contentscript"); if(i == 0) { browser.tabs.sendMessage(tab.id,{state: "Init",url: data.subscriptions[0].url}) .then((response) => { console.log("got response!! content should reload"); console.log(response); resolve(); }); } else { browser.tabs.sendMessage(tab.id,{state: i,url: data.subscriptions[i].url}) .then((response) => { console.log(response); resolve(); }); } }); }); } function readUrl() { let data; 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)); }