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

Delta Between Two Patch Sets: ext/common.js

Issue 29375899: Issue 4871 - Start using ESLint for adblockplusui (Closed)
Left Patch Set: Created Feb. 20, 2017, 10:01 a.m.
Right Patch Set: Avoid violating operator-linebreak rule Created March 15, 2017, 4:43 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « ext/background.js ('k') | ext/content.js » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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 "use strict"; 18 "use strict";
19 19
20 (function()
20 { 21 {
21 if (typeof ext == "undefined") 22 if (typeof ext == "undefined")
22 window.ext = {}; 23 window.ext = {};
23 24
24 function Page(source) 25 function Page(source)
25 { 26 {
26 this._source = source; 27 this._source = source;
27 } 28 }
28 Page.prototype = 29 Page.prototype =
29 { 30 {
30 sendMessage(message) 31 sendMessage(message)
31 { 32 {
32 this._source.postMessage({ 33 this._source.postMessage({
33 type: "message", 34 type: "message",
34 messageId: -1, 35 messageId: -1,
35 payload: message 36 payload: message
36 }, "*"); 37 }, "*");
37 } 38 }
38 }; 39 };
39 40
40 global.ext.Page = Page; 41 window.ext.Page = Page;
41 42
42 /* Message passing */ 43 /* Message passing */
43 44
44 global.ext.onMessage = 45 window.ext.onMessage =
45 { 46 {
46 addListener(listener) 47 addListener(listener)
47 { 48 {
48 listener._extWrapper = function(event) 49 listener._extWrapper = function(event)
49 { 50 {
50 if (event.data.type != "message") 51 if (event.data.type != "message")
51 return; 52 return;
52 53
53 let {messageId} = event.data; 54 let {messageId} = event.data;
54 let sender = { 55 let sender = {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 return catalog; 110 return catalog;
110 }; 111 };
111 112
112 let selectedLocale = window.navigator.language; 113 let selectedLocale = window.navigator.language;
113 let match = /[?&]locale=([\w-]+)/.exec(window.location.search); 114 let match = /[?&]locale=([\w-]+)/.exec(window.location.search);
114 if (match) 115 if (match)
115 selectedLocale = match[1]; 116 selectedLocale = match[1];
116 117
117 let locales = getLocaleCandidates(selectedLocale); 118 let locales = getLocaleCandidates(selectedLocale);
118 let catalog = initCatalog(locales[0]); 119 let catalog = initCatalog(locales[0]);
119 let catalogFile = window.location.pathname.replace(/.*\//, ""). 120 let catalogFile = window.location.pathname.replace(/.*\//, "")
120 replace(/\..*/, "") + ".json"; 121 .replace(/\..*/, "") + ".json";
121 122
122 let replacePlaceholder = function(text, placeholder, content) 123 let replacePlaceholder = function(text, placeholder, content)
123 { 124 {
124 return text.split("$" + placeholder + "$").join(content || ""); 125 return text.split("$" + placeholder + "$").join(content || "");
125 }; 126 };
126 127
127 let parseMessage = function(rawMessage) 128 let parseMessage = function(rawMessage)
128 { 129 {
129 let text = rawMessage.message; 130 let text = rawMessage.message;
130 let placeholders = []; 131 let placeholders = [];
(...skipping 30 matching lines...) Expand all
161 return; 162 return;
162 163
163 let rawCatalog = JSON.parse(xhr.responseText); 164 let rawCatalog = JSON.parse(xhr.responseText);
164 for (let msgId in rawCatalog) 165 for (let msgId in rawCatalog)
165 { 166 {
166 if (!(msgId in catalog)) 167 if (!(msgId in catalog))
167 catalog[msgId] = parseMessage(rawCatalog[msgId]); 168 catalog[msgId] = parseMessage(rawCatalog[msgId]);
168 } 169 }
169 }; 170 };
170 171
171 global.ext.i18n = { 172 window.ext.i18n = {
172 getMessage(msgId, substitutions) 173 getMessage(msgId, substitutions)
173 { 174 {
174 /* eslint-disable no-constant-condition */
175 while (true) 175 while (true)
176 { 176 {
177 let message = catalog[msgId]; 177 let message = catalog[msgId];
178 if (message) 178 if (message)
179 { 179 {
180 let text = message[0]; 180 let text = message[0];
181 let placeholders = message[1]; 181 let placeholders = message[1];
182 182
183 if (!(substitutions instanceof Array)) 183 if (!(substitutions instanceof Array))
184 substitutions = [substitutions]; 184 substitutions = [substitutions];
185 185
186 for (let i = 0; i < placeholders.length; i++) 186 for (let i = 0; i < placeholders.length; i++)
187 text = replacePlaceholder(text, placeholders[i], substitutions[i]); 187 text = replacePlaceholder(text, placeholders[i], substitutions[i]);
188 188
189 return text; 189 return text;
190 } 190 }
191 191
192 if (locales.length == 0) 192 if (locales.length == 0)
193 return ""; 193 return "";
194 194
195 let locale = locales.shift(); 195 let locale = locales.shift();
196 readCatalog(locale, "common.json"); 196 readCatalog(locale, "common.json");
197 readCatalog(locale, catalogFile); 197 readCatalog(locale, catalogFile);
198 } 198 }
199 /* eslint-enable no-constant-condition */ 199 }
200 } 200 };
201 }; 201 }());
202 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld