mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 05:11:19 -04:00
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:
parent
aa107862c5
commit
d4aa9ad2b3
1 changed files with 38 additions and 27 deletions
|
@ -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();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue