let authUrl; let buildIdentifier; const IS_FIREFOX = (typeof chrome === "undefined"); const IS_CHROME = (typeof browser === "undefined"); const onMessagelistener = (request) => { return new Promise(resolve => { switch(request.type) { case `getAuthUrl`: resolve(authUrl); return; case `getBuildIdentifier`: resolve(buildIdentifier); return; case `setAuthUrl`: authUrl = request.authUrl; resolve(); break; case `setBuildIdentifier`: buildIdentifier = request.buildIdentifier; resolve(); break; } }); } if (IS_FIREFOX) { browser.runtime.onMessage.addListener(onMessagelistener); browser.runtime.onMessageExternal.addListener(onMessagelistener); } if (IS_CHROME) { chrome.runtime.onMessageExternal.addListener(async (request, sender, sendResponse) => { sendResponse(await onMessagelistener(request, sender)); }); chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => { sendResponse(await onMessagelistener(request, sender)); }); } let init = async () => { let backendIsNull; if (IS_FIREFOX) backendIsNull = !(await browser.storage.local.get("backend")); if (IS_CHROME) backendIsNull = !await new Promise(resolve => { chrome.storage.local.get("backend", result => { resolve(result); }); }); const setLocalObject = { backend: "http://localhost:3000" }; if (IS_FIREFOX) browser.storage.local.set(setLocalObject); if (IS_CHROME) chrome.storage.local.set(setLocalObject); }; init();