Reorder enable checks

First check that it is enabled before doing feature testing.

This will be useful in the badge so that probing only happens if it is
enabled.
This commit is contained in:
Arlo Breault 2019-09-26 12:07:24 -04:00
parent aa107862c5
commit d4aa9ad2b3

View file

@ -26,30 +26,40 @@ class WebExtUI extends UI {
} }
initToggle() { initToggle() {
if (!Util.hasWebRTC()) { // First, check if we have our status stored
this.missingFeature = 'popupWebRTCOff'; (new Promise((resolve) => {
this.setEnabled(false); chrome.storage.local.get(["snowflake-enabled"], resolve);
return; }))
} .then((result) => {
WS.probeWebsocket(config.relayAddr) let enabled = this.enabled;
.then( if (result['snowflake-enabled'] !== void 0) {
() => { enabled = result['snowflake-enabled'];
chrome.storage.local.get("snowflake-enabled", (result) => { } else {
let enabled = this.enabled; log("Toggle state not yet saved");
if (result['snowflake-enabled'] !== void 0) {
enabled = result['snowflake-enabled'];
} else {
log("Toggle state not yet saved");
}
this.setEnabled(enabled);
});
},
() => {
log('Could not connect to bridge.');
this.missingFeature = 'popupBridgeUnreachable';
this.setEnabled(false);
} }
); // If it isn't enabled, stop
if (!enabled) {
this.setEnabled(enabled);
return;
}
// Otherwise, do feature checks
if (!Util.hasWebRTC()) {
this.missingFeature = 'popupWebRTCOff';
this.setEnabled(false);
return;
}
WS.probeWebsocket(config.relayAddr)
.then(
() => {
this.setEnabled(true);
},
() => {
log('Could not connect to bridge.');
this.missingFeature = 'popupBridgeUnreachable';
this.setEnabled(false);
}
);
});
} }
postActive() { postActive() {
@ -73,11 +83,12 @@ class WebExtUI extends UI {
} }
onMessage(m) { onMessage(m) {
this.setEnabled(m.enabled); (new Promise((resolve) => {
chrome.storage.local.set({ chrome.storage.local.set({ "snowflake-enabled": m.enabled }, resolve);
"snowflake-enabled": this.enabled }))
}, function() { .then(() => {
log("Stored toggle state"); log("Stored toggle state");
this.initToggle();
}); });
} }