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 promise; browser.browserAction.onClicked.addListener(() => { promise = browser.tabs.create({"url": "home.html"},function(tab){ browser.runtime.onMessage.addListener(()=>{ run(data,tab); console.log("pass tab data to run, in promise"); console.log(tab); }); }); }); } function failure(value) { console.log("tabs.create returned a failure"); } function run(data,tab) { let i2=0; // injectScript(tab); let promise = browser.tabs.executeScript(tab.id,{ file:"spawn.js" }); promise.then(function() { console.log("bbackground.js: received start signal..."); if(i2 == 0) { browser.tabs.sendMessage(tab.id,{state: "Init",url: data.subscriptions[0].url}); } else { browser.tabs.sendMessage(tab.id,{state: i2,url: data.subscriptions[i2].url}); } i2++; }); } 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)); }