embed.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* global chrome, Popup */
  2. const port = chrome.runtime.connect({
  3. name: "popup"
  4. });
  5. port.onMessage.addListener((m) => {
  6. const { active, enabled, total, missingFeature } = m;
  7. const popup = new Popup();
  8. if (missingFeature) {
  9. popup.setEnabled(false);
  10. popup.setActive(false);
  11. popup.setStatusText("Snowflake is off");
  12. popup.setStatusDesc("WebRTC feature is not detected.", true);
  13. popup.hideButton();
  14. return;
  15. }
  16. const clients = active ? 1 : 0;
  17. if (enabled) {
  18. popup.setChecked(true);
  19. popup.setToggleText('Turn Off');
  20. popup.setStatusText(`${clients} client${(clients !== 1) ? 's' : ''} connected.`);
  21. popup.setStatusDesc(`Your snowflake has helped ${total} user${(total !== 1) ? 's' : ''} circumvent censorship in the last 24 hours.`);
  22. } else {
  23. popup.setChecked(false);
  24. popup.setToggleText('Turn On');
  25. popup.setStatusText("Snowflake is off");
  26. popup.setStatusDesc("");
  27. }
  28. popup.setEnabled(enabled);
  29. popup.setActive(active);
  30. });
  31. document.addEventListener('change', (event) => {
  32. port.postMessage({ enabled: event.target.checked });
  33. })