Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: firstRun.js

Issue 29375899: Issue 4871 - Start using ESLint for adblockplusui (Closed)
Patch Set: Started addressing Sebastian's initial feedback Created Feb. 23, 2017, 11:09 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ext/devtools.js ('k') | i18n.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2016 Eyeo GmbH 3 * Copyright (C) 2006-2016 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 /* globals checkShareResource, getDocLink, openSharePopup, E */
19
18 "use strict"; 20 "use strict";
19 21
20 (function()
21 { 22 {
22 function onDOMLoaded() 23 function onDOMLoaded()
23 { 24 {
24 // Set up logo image 25 // Set up logo image
25 var logo = E("logo"); 26 let logo = E("logo");
26 logo.src = "skin/abp-128.png"; 27 logo.src = "skin/abp-128.png";
27 var errorCallback = function() 28 let errorCallback = function()
28 { 29 {
29 logo.removeEventListener("error", errorCallback, false); 30 logo.removeEventListener("error", errorCallback, false);
30 // We are probably in Chrome/Opera/Safari, the image has a different path. 31 // We are probably in Chrome/Opera/Safari, the image has a different path.
31 logo.src = "icons/detailed/abp-128.png"; 32 logo.src = "icons/detailed/abp-128.png";
32 }; 33 };
33 logo.addEventListener("error", errorCallback, false); 34 logo.addEventListener("error", errorCallback, false);
34 35
35 // Set up URLs 36 // Set up URLs
36 getDocLink("donate", function(link) 37 getDocLink("donate", link =>
37 { 38 {
38 E("donate").href = link; 39 E("donate").href = link;
39 }); 40 });
40 41
41 getDocLink("contributors", function(link) 42 getDocLink("contributors", link =>
42 { 43 {
43 E("contributors").href = link; 44 E("contributors").href = link;
44 }); 45 });
45 46
46 getDocLink("acceptable_ads_criteria", function(link) 47 getDocLink("acceptable_ads_criteria", link =>
47 { 48 {
48 setLinks("acceptable-ads-explanation", link, openFilters); 49 setLinks("acceptable-ads-explanation", link, openFilters);
49 }); 50 });
50 51
51 getDocLink("contribute", function(link) 52 getDocLink("contribute", link =>
52 { 53 {
53 setLinks("share-headline", link); 54 setLinks("share-headline", link);
54 }); 55 });
55 56
56 ext.backgroundPage.sendMessage({ 57 ext.backgroundPage.sendMessage({
57 type: "app.get", 58 type: "app.get",
58 what: "issues" 59 what: "issues"
59 }, function(issues) 60 }, issues =>
60 { 61 {
61 // Show warning if filterlists settings were reinitialized 62 // Show warning if filterlists settings were reinitialized
62 if (issues.filterlistsReinitialized) 63 if (issues.filterlistsReinitialized)
63 { 64 {
64 E("filterlistsReinitializedWarning").removeAttribute("hidden"); 65 E("filterlistsReinitializedWarning").removeAttribute("hidden");
65 setLinks("filterlistsReinitializedWarning", openFilters); 66 setLinks("filterlistsReinitializedWarning", openFilters);
66 } 67 }
67 }); 68 });
68 69
69 updateSocialLinks(); 70 updateSocialLinks();
70 71
71 ext.onMessage.addListener(function(message) 72 ext.onMessage.addListener(message =>
72 { 73 {
73 if (message.type == "subscriptions.respond") 74 if (message.type == "subscriptions.respond")
74 {
75 updateSocialLinks(); 75 updateSocialLinks();
76 }
77 }); 76 });
78 ext.backgroundPage.sendMessage({ 77 ext.backgroundPage.sendMessage({
79 type: "subscriptions.listen", 78 type: "subscriptions.listen",
80 filter: ["added", "removed", "updated", "disabled"] 79 filter: ["added", "removed", "updated", "disabled"]
81 }); 80 });
82 } 81 }
83 82
84 function updateSocialLinks() 83 function updateSocialLinks()
85 { 84 {
86 var networks = ["twitter", "facebook", "gplus"]; 85 let networks = ["twitter", "facebook", "gplus"];
87 networks.forEach(function(network) 86 networks.forEach(network =>
88 { 87 {
89 var link = E("share-" + network); 88 let link = E("share-" + network);
90 checkShareResource(link.getAttribute("data-script"), function(isBlocked) 89 checkShareResource(link.getAttribute("data-script"), isBlocked =>
91 { 90 {
92 // Don't open the share page if the sharing script would be blocked 91 // Don't open the share page if the sharing script would be blocked
93 if (isBlocked) 92 if (isBlocked)
94 link.removeEventListener("click", onSocialLinkClick, false); 93 link.removeEventListener("click", onSocialLinkClick, false);
95 else 94 else
96 link.addEventListener("click", onSocialLinkClick, false); 95 link.addEventListener("click", onSocialLinkClick, false);
97 }); 96 });
98 }); 97 });
99 } 98 }
100 99
101 function onSocialLinkClick(event) 100 function onSocialLinkClick(event)
102 { 101 {
103 if (window.matchMedia("(max-width: 970px)").matches) 102 if (window.matchMedia("(max-width: 970px)").matches)
104 return; 103 return;
105 104
106 event.preventDefault(); 105 event.preventDefault();
107 106
108 getDocLink(event.target.id, function(link) 107 getDocLink(event.target.id, link =>
109 { 108 {
110 openSharePopup(link); 109 openSharePopup(link);
111 }); 110 });
112 } 111 }
113 112
114 function setLinks(id) 113 function setLinks(id, ...args)
115 { 114 {
116 var element = E(id); 115 let element = E(id);
117 if (!element) 116 if (!element)
117 return;
118
119 let links = element.getElementsByTagName("a");
120
121 for (let i = 0; i < links.length; i++)
118 { 122 {
119 return; 123 if (typeof args[i] == "string")
120 }
121
122 var links = element.getElementsByTagName("a");
123
124 for (var i = 0; i < links.length; i++)
125 {
126 if (typeof arguments[i + 1] == "string")
127 { 124 {
128 links[i].href = arguments[i + 1]; 125 links[i].href = args[i];
129 links[i].setAttribute("target", "_blank"); 126 links[i].setAttribute("target", "_blank");
130 } 127 }
131 else if (typeof arguments[i + 1] == "function") 128 else if (typeof args[i] == "function")
132 { 129 {
133 links[i].href = "javascript:void(0);"; 130 links[i].href = "javascript:void(0);";
134 links[i].addEventListener("click", arguments[i + 1], false); 131 links[i].addEventListener("click", args[i], false);
135 } 132 }
136 } 133 }
137 } 134 }
138 135
139 function openFilters() 136 function openFilters()
140 { 137 {
141 ext.backgroundPage.sendMessage({type: "app.open", what: "options"}); 138 ext.backgroundPage.sendMessage({type: "app.open", what: "options"});
142 } 139 }
143 140
144 document.addEventListener("DOMContentLoaded", onDOMLoaded, false); 141 document.addEventListener("DOMContentLoaded", onDOMLoaded, false);
145 })(); 142 }
OLDNEW
« no previous file with comments | « ext/devtools.js ('k') | i18n.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld