background.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. let authUrl;
  2. let buildIdentifier;
  3. const IS_FIREFOX = (typeof chrome === "undefined");
  4. const IS_CHROME = (typeof browser === "undefined");
  5. const onMessagelistener = (request) => {
  6. return new Promise(resolve => {
  7. switch(request.type) {
  8. case `getAuthUrl`:
  9. resolve(authUrl);
  10. return;
  11. case `getBuildIdentifier`:
  12. resolve(buildIdentifier);
  13. return;
  14. case `setAuthUrl`:
  15. authUrl = request.authUrl;
  16. resolve();
  17. break;
  18. case `setBuildIdentifier`:
  19. buildIdentifier = request.buildIdentifier;
  20. resolve();
  21. break;
  22. }
  23. });
  24. }
  25. if (IS_FIREFOX) {
  26. browser.runtime.onMessage.addListener(onMessagelistener);
  27. browser.runtime.onMessageExternal.addListener(onMessagelistener);
  28. }
  29. if (IS_CHROME) {
  30. chrome.runtime.onMessageExternal.addListener(async (request, sender, sendResponse) => {
  31. sendResponse(await onMessagelistener(request, sender));
  32. });
  33. chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
  34. sendResponse(await onMessagelistener(request, sender));
  35. });
  36. }
  37. let init = async () => {
  38. let backendIsNull;
  39. if (IS_FIREFOX) backendIsNull = !(await browser.storage.local.get("backend"));
  40. if (IS_CHROME) backendIsNull = !await new Promise(resolve => {
  41. chrome.storage.local.get("backend", result => {
  42. resolve(result);
  43. });
  44. });
  45. const setLocalObject = {
  46. backend: "http://localhost:3000"
  47. };
  48. if (IS_FIREFOX) browser.storage.local.set(setLocalObject);
  49. if (IS_CHROME) chrome.storage.local.set(setLocalObject);
  50. };
  51. init();