Skip to content

Commit a9f881b

Browse files
koops76luciancor
authored andcommitted
ES6 rewrite (EFForg#10852)
* ES6 rewrite * for...of support came only in Chromium 51 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of#Chrome_note_3 * Update background.js
1 parent 6146897 commit a9f881b

9 files changed

Lines changed: 282 additions & 274 deletions

File tree

chromium/background.js

Lines changed: 117 additions & 114 deletions
Large diffs are not rendered by default.

chromium/devtools-panel.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,35 +43,35 @@ function display() {
4343
chrome.runtime.sendMessage({
4444
type: "getSmallHtml",
4545
tabId: chrome.devtools.inspectedWindow.tabId,
46-
}, function(response) {
46+
}, response => {
4747
e("SwitchPlannerDetails").innerHTML = response.html;
4848
e("SwitchPlannerResults").style.display = "block";
4949
});
5050
}
5151

52-
window.onload = function() {
52+
window.onload = () => {
5353
// Open a connection to the background page. Right now this is only used
5454
// by the background page so it knows when the devtools pane has closed.
5555
// We don't receive messages from the background page currently, though that
5656
// may be a future improvement. Sending messages to the background page doesn't
5757
// require an existing connection.
5858
chrome.runtime.connect({ name: "devtools-page" });
5959

60-
var checkbox = e("SwitchPlannerCheckbox");
61-
checkbox.addEventListener("change", function() {
60+
const checkbox = e("SwitchPlannerCheckbox");
61+
checkbox.addEventListener("change", () => {
6262
if (checkbox.checked) {
6363
enableSwitchPlanner();
6464
} else {
6565
disableSwitchPlanner();
6666
}
6767
});
6868

69-
e("SwitchPlannerDetailsLink").addEventListener("click", function() {
69+
e("SwitchPlannerDetailsLink").addEventListener("click", () => {
7070
window.open("switch-planner.html?tab=" + chrome.devtools.inspectedWindow.tabId);
7171
});
7272
// Since this is rendered in a devtools console, we have to make clicks on the
7373
// link open a new window.
74-
e("MixedContentLink").addEventListener("click", function(e) {
74+
e("MixedContentLink").addEventListener("click", e => {
7575
window.open(e.target.href);
7676
});
7777
};

chromium/devtools.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
chrome.devtools.panels.create("HTTPS Everywhere",
22
"icons/icon-active-38.png",
33
"devtools-panel.html",
4-
function(panel) {
4+
panel => {
55
}
66
);

chromium/manifest.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
},
2929
"incognito": "spanning",
3030
"manifest_version": 2,
31-
"minimum_chrome_version": "45",
31+
"minimum_chrome_version": "51",
3232
"name": "__MSG_about_ext_name__",
3333
"permissions": [
3434
"webNavigation",
@@ -38,6 +38,6 @@
3838
"cookies",
3939
"storage",
4040
"<all_urls>"
41-
],
41+
],
4242
"version": "2017.7.5"
43-
}
43+
}

chromium/popup.js

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
"use strict";
22

3-
var backgroundPage = chrome.extension.getBackgroundPage();
4-
var stableRules = null;
5-
var unstableRules = null;
6-
var hostReg = /.*\/\/[^$/]*\//;
7-
var storage = backgroundPage.storage;
3+
const backgroundPage = chrome.extension.getBackgroundPage();
4+
let stableRules = null;
5+
let unstableRules = null;
6+
const hostReg = /.*\/\/[^$/]*\//;
7+
const storage = backgroundPage.storage;
88

99
function e(id) {
1010
return document.getElementById(id);
@@ -18,7 +18,7 @@ function e(id) {
1818
function toggleRuleLine(checkbox, ruleset) {
1919
ruleset.active = checkbox.checked;
2020

21-
if (ruleset.active != ruleset.default_state) {
21+
if (ruleset.active !== ruleset.default_state) {
2222
localStorage[ruleset.name] = ruleset.active;
2323
} else {
2424
delete localStorage[ruleset.name];
@@ -37,54 +37,54 @@ function toggleRuleLine(checkbox, ruleset) {
3737
function appendRuleLineToListDiv(ruleset, list_div) {
3838

3939
// parent block for line
40-
var line = document.createElement("div");
40+
const line = document.createElement("div");
4141
line.className = "rule checkbox";
4242

4343
// label "container"
44-
var label = document.createElement("label");
44+
const label = document.createElement("label");
4545

4646
// checkbox
47-
var checkbox = document.createElement("input");
47+
const checkbox = document.createElement("input");
4848
checkbox.type = "checkbox";
4949
if (ruleset.active) {
5050
checkbox.setAttribute("checked", "");
5151
}
52-
checkbox.onchange = function(ev) {
52+
checkbox.onchange = ev => {
5353
toggleRuleLine(checkbox, ruleset);
5454
};
5555
label.appendChild(checkbox);
5656

5757
// favicon (from chrome's cache)
58-
var favicon = document.createElement("img");
58+
const favicon = document.createElement("img");
5959
favicon.className = "favicon";
6060
favicon.src = "chrome://favicon/";
61-
for (let rule of ruleset.rules) {
62-
var host = hostReg.exec(rule.to);
61+
for (const rule of ruleset.rules) {
62+
const host = hostReg.exec(rule.to);
6363
if (host) {
6464
favicon.src += host[0];
6565
break;
6666
}
6767
}
68-
var xhr = new XMLHttpRequest();
68+
const xhr = new XMLHttpRequest();
6969
try {
7070
xhr.open("GET", favicon.src, true);
7171
label.appendChild(favicon);
7272
} catch (e) {}
7373

7474
// label text
75-
var text = document.createElement("span");
75+
const text = document.createElement("span");
7676
text.innerText = ruleset.name;
7777
if (ruleset.note.length) {
7878
text.title = ruleset.note;
7979
}
8080

81-
if(ruleset.note == "user rule") {
82-
var remove = document.createElement("img");
81+
if(ruleset.note === "user rule") {
82+
const remove = document.createElement("img");
8383
remove.src = chrome.extension.getURL("remove.png");
8484
remove.className = "remove";
8585
line.appendChild(remove);
8686

87-
remove.addEventListener("click", function(){
87+
remove.addEventListener("click", () => {
8888
backgroundPage.removeRule(ruleset);
8989
list_div.removeChild(line);
9090
});
@@ -129,11 +129,11 @@ function toggleEnabledDisabled() {
129129
* @param tabArray
130130
*/
131131
function gotTab(tabArray) {
132-
var activeTab = tabArray[0];
133-
var rulesets = backgroundPage.activeRulesets.getRulesets(activeTab.id);
132+
const activeTab = tabArray[0];
133+
const rulesets = backgroundPage.activeRulesets.getRulesets(activeTab.id);
134134

135-
for (var r in rulesets) {
136-
var listDiv = stableRules;
135+
for (const r in rulesets) {
136+
const listDiv = stableRules;
137137
if (!rulesets[r].default_state) {
138138
listDiv = unstableRules;
139139
}
@@ -160,24 +160,24 @@ document.addEventListener("DOMContentLoaded", function () {
160160
document.getElementById('onoffswitch').addEventListener('click', toggleEnabledDisabled);
161161

162162
// Print the extension's current version.
163-
var the_manifest = chrome.runtime.getManifest();
164-
var version_info = document.getElementById('current-version');
163+
const the_manifest = chrome.runtime.getManifest();
164+
const version_info = document.getElementById('current-version');
165165
version_info.innerText = the_manifest.version;
166166

167167
// Set up toggle checkbox for HTTP nowhere mode
168-
getOption_('httpNowhere', false, function(item) {
169-
var httpNowhereCheckbox = document.getElementById('http-nowhere-checkbox');
168+
getOption_('httpNowhere', false, item => {
169+
const httpNowhereCheckbox = document.getElementById('http-nowhere-checkbox');
170170
httpNowhereCheckbox.addEventListener('click', toggleHttpNowhere, false);
171-
var httpNowhereEnabled = item.httpNowhere;
171+
const httpNowhereEnabled = item.httpNowhere;
172172
if (httpNowhereEnabled) {
173173
httpNowhereCheckbox.setAttribute('checked', '');
174174
}
175175
});
176176

177177
// auto-translate all elements with i18n attributes
178-
var elem = document.querySelectorAll("[i18n]");
179-
for (let el of elem) {
180-
el.innerHTML = chrome.i18n.getMessage(el.getAttribute("i18n"));
178+
const elements = document.querySelectorAll("[i18n]");
179+
for (const element of elements) {
180+
elements.innerHTML = chrome.i18n.getMessage(elements.getAttribute("i18n"));
181181
}
182182

183183
// other translations
@@ -186,7 +186,7 @@ document.addEventListener("DOMContentLoaded", function () {
186186
});
187187

188188

189-
var escapeForRegex = function( value ) {
189+
function escapeForRegex(value) {
190190
return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
191191
};
192192

@@ -202,61 +202,61 @@ function show(elem) {
202202
* Handles the manual addition of rules
203203
*/
204204
function addManualRule() {
205-
chrome.tabs.query({ active: true, currentWindow: true }, function(tab) {
205+
chrome.tabs.query({ active: true, currentWindow: true }, tab => {
206206
hide(e("add-rule-link"));
207207
show(e("add-new-rule-div"));
208-
var newUrl = document.createElement('a');
208+
const newUrl = document.createElement('a');
209209
newUrl.href = tab[0].url;
210210
newUrl.protocol = "https:";
211211
e("new-rule-host").value = newUrl.host;
212-
var oldUrl = document.createElement('a');
212+
const oldUrl = document.createElement('a');
213213
oldUrl.href = tab[0].url;
214214
oldUrl.protocol = "http:";
215-
var oldMatcher = "^" + escapeForRegex(oldUrl.protocol + "//" + oldUrl.host+ "/");
215+
const oldMatcher = "^" + escapeForRegex(oldUrl.protocol + "//" + oldUrl.host+ "/");
216216
e("new-rule-regex").value = oldMatcher;
217-
var redirectPath = newUrl.protocol + "//" + newUrl.host + "/";
217+
const redirectPath = newUrl.protocol + "//" + newUrl.host + "/";
218218
e("new-rule-redirect").value = redirectPath;
219219
e("new-rule-name").value = "Manual rule for " + oldUrl.host;
220-
e("add-new-rule-button").addEventListener("click", function() {
221-
var params = {
220+
e("add-new-rule-button").addEventListener("click", () => {
221+
const params = {
222222
host : e("new-rule-host").value,
223223
redirectTo : e("new-rule-redirect").value,
224224
urlMatcher : e("new-rule-regex").value
225225
};
226-
backgroundPage.addNewRule(params, function() {
226+
backgroundPage.addNewRule(params, () => {
227227
location.reload();
228228
});
229229
});
230230

231-
e("cancel-new-rule").addEventListener("click", function() {
231+
e("cancel-new-rule").addEventListener("click", () => {
232232
show(e("add-rule-link"));
233233
hide(e("add-new-rule-div"));
234234
});
235-
e("new-rule-show-advanced-link").addEventListener("click", function() {
235+
e("new-rule-show-advanced-link").addEventListener("click", () => {
236236
show(e("new-rule-advanced"));
237237
hide(e("new-rule-regular-text"));
238238
});
239-
e("new-rule-hide-advanced-link").addEventListener("click", function() {
239+
e("new-rule-hide-advanced-link").addEventListener("click", () => {
240240
hide(e("new-rule-advanced"));
241241
show(e("new-rule-regular-text"));
242242
});
243243
});
244244
}
245245

246246
function toggleHttpNowhere() {
247-
getOption_('httpNowhere', false, function(item) {
247+
getOption_('httpNowhere', false, item => {
248248
setOption_('httpNowhere', !item.httpNowhere);
249249
});
250250
}
251251

252252
function getOption_(opt, defaultOpt, callback) {
253-
var details = {};
253+
const details = {};
254254
details[opt] = defaultOpt;
255255
return storage.get(details, callback);
256256
}
257257

258258
function setOption_(opt, value) {
259-
var details = {};
259+
const details = {};
260260
details[opt] = value;
261261
return storage.set(details);
262262
}

0 commit comments

Comments
 (0)