snowflake/proxy/webext/embed.js
Arlo Breault e60f22833a Reimagine the badge
Trac 27385
2019-07-27 12:01:03 -04:00

38 lines
1.1 KiB
JavaScript

/* global chrome, Popup */
const port = chrome.runtime.connect({
name: "popup"
});
port.onMessage.addListener((m) => {
const { active, enabled, total, missingFeature } = m;
const popup = new Popup();
if (missingFeature) {
popup.setImgSrc('off');
popup.setStatusText("Snowflake is off");
popup.setStatusDesc("WebRTC feature is not detected.", 'firebrick');
popup.hideButton();
return;
}
const clients = active ? 1 : 0;
if (enabled) {
popup.setChecked(true);
popup.setToggleText('Turn Off');
popup.setStatusText(`${clients} client${(clients !== 1) ? 's' : ''} connected.`);
popup.setStatusDesc(`Your snowflake has helped ${total} user${(total !== 1) ? 's' : ''} circumvent censorship in the last 24 hours.`);
} else {
popup.setChecked(false);
popup.setToggleText('Turn On');
popup.setStatusText("Snowflake is off");
popup.setStatusDesc("");
}
popup.setImgSrc(active ? "running" : enabled ? "on" : "off");
});
document.addEventListener('change', (event) => {
port.postMessage({ enabled: event.target.checked });
})