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

Side by Side Diff: background.js

Issue 29337729: Issue 2374 - Implemented Tweaks section in options page (Closed)
Patch Set: Created Feb. 29, 2016, 5:27 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
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 (function(global) 18 (function(global)
19 { 19 {
20 function Notifier()
21 {
22 this._listeners = [];
23 }
24 Notifier.prototype = {
25 _listeners: null,
26
27 addListener: function(listener)
28 {
29 if (this._listeners.indexOf(listener) < 0)
30 this._listeners.push(listener);
31 },
32
33 removeListener: function(listener)
34 {
35 var index = this._listeners.indexOf(listener);
36 if (index >= 0)
37 this._listeners.splice(index, 1);
38 },
39
40 triggerListeners: function()
41 {
42 var args = Array.prototype.slice.apply(arguments);
43 var listeners = this._listeners.slice();
44 for (var i = 0; i < listeners.length; i++)
45 listeners[i].apply(null, args);
46 }
47 };
48
20 function updateFromURL(data) 49 function updateFromURL(data)
21 { 50 {
22 if (window.location.search) 51 if (window.location.search)
23 { 52 {
24 var params = window.location.search.substr(1).split("&"); 53 var params = window.location.search.substr(1).split("&");
25 for (var i = 0; i < params.length; i++) 54 for (var i = 0; i < params.length; i++)
26 { 55 {
27 var parts = params[i].split("=", 2); 56 var parts = params[i].split("=", 2);
28 if (parts.length == 2 && parts[0] in data) 57 if (parts.length == 2 && parts[0] in data)
29 data[parts[0]] = decodeURIComponent(parts[1]); 58 data[parts[0]] = decodeURIComponent(parts[1]);
30 } 59 }
31 } 60 }
32 } 61 }
33 62
34 var params = { 63 var params = {
35 blockedURLs: "", 64 blockedURLs: "",
36 seenDataCorruption: false, 65 seenDataCorruption: false,
37 filterlistsReinitialized: false, 66 filterlistsReinitialized: false,
38 addSubscription: false, 67 addSubscription: false,
39 filterError: false, 68 filterError: false,
40 downloadStatus: "synchronize_ok" 69 downloadStatus: "synchronize_ok",
70 showNotificationUI: false,
71 safariContentBlocker: false
41 }; 72 };
42 updateFromURL(params); 73 updateFromURL(params);
43 74
44 var modules = {}; 75 var modules = {};
45 global.require = function(module) 76 global.require = function(module)
46 { 77 {
47 return modules[module]; 78 return modules[module];
48 }; 79 };
49 80
50 modules.utils = { 81 modules.utils = {
51 Utils: { 82 Utils: {
52 getDocLink: function(link) 83 getDocLink: function(link)
53 { 84 {
54 return "https://adblockplus.org/redirect?link=" + encodeURIComponent(lin k); 85 return "https://adblockplus.org/redirect?link=" + encodeURIComponent(lin k);
55 }, 86 },
56 get appLocale() 87 get appLocale()
57 { 88 {
58 return parent.ext.i18n.getMessage("@@ui_locale").replace(/_/g, "-"); 89 return parent.ext.i18n.getMessage("@@ui_locale").replace(/_/g, "-");
59 } 90 }
60 } 91 }
61 }; 92 };
62 93
63 modules.prefs = { 94 modules.prefs = {
64 Prefs: { 95 Prefs: {
65 "subscriptions_exceptionsurl": "https://easylist-downloads.adblockplus.org /exceptionrules.txt" 96 onChanged: new Notifier()
97 }
98 };
99 var prefs = {
100 notifications_ignoredcategories: (params.showNotificationUI) ? ["*"] : [],
101 notifications_showui: params.showNotificationUI,
102 safari_contentblocker: false,
103 shouldShowBlockElementMenu: true,
104 subscriptions_exceptionsurl: "https://easylist-downloads.adblockplus.org/exc eptionrules.txt"
105 };
106 Object.keys(prefs).forEach(function(key)
107 {
108 Object.defineProperty(modules.prefs.Prefs, key, {
109 get: function()
110 {
111 return prefs[key];
112 },
113 set: function(value)
114 {
115 prefs[key] = value;
116 modules.prefs.Prefs.onChanged.triggerListeners(key);
117 return prefs[key];
118 }
119 });
120 });
121
122 modules.notification = {
123 Notification: {
124 toggleIgnoreCategory: function(category)
125 {
126 var categories = prefs.notifications_ignoredcategories;
127 var index = categories.indexOf(category);
128 if (index == -1)
129 categories.push(category);
130 else
131 categories.splice(index, 1);
132 modules.prefs.Prefs.notifications_ignoredcategories = categories;
133 }
66 } 134 }
67 }; 135 };
68 136
69 modules.subscriptionClasses = { 137 modules.subscriptionClasses = {
70 Subscription: function(url) 138 Subscription: function(url)
71 { 139 {
72 this.url = url; 140 this.url = url;
73 this.title = "Subscription " + url; 141 this.title = "Subscription " + url;
74 this.disabled = false; 142 this.disabled = false;
75 this._lastDownload = 1234; 143 this._lastDownload = 1234;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 } 302 }
235 } 303 }
236 }; 304 };
237 305
238 modules.cssRules = { 306 modules.cssRules = {
239 CSSRules: { 307 CSSRules: {
240 getRulesForDomain: function(domain) { } 308 getRulesForDomain: function(domain) { }
241 } 309 }
242 }; 310 };
243 311
244 var notifierListeners = [];
245 modules.filterNotifier = { 312 modules.filterNotifier = {
246 FilterNotifier: { 313 FilterNotifier: new Notifier()
247 addListener: function(listener)
248 {
249 if (notifierListeners.indexOf(listener) < 0)
250 notifierListeners.push(listener);
251 },
252
253 removeListener: function(listener)
254 {
255 var index = notifierListeners.indexOf(listener);
256 if (index >= 0)
257 notifierListeners.splice(index, 1);
258 },
259
260 triggerListeners: function()
261 {
262 var args = Array.prototype.slice.apply(arguments);
263 var listeners = notifierListeners.slice();
264 for (var i = 0; i < listeners.length; i++)
265 listeners[i].apply(null, args);
266 }
267 }
268 }; 314 };
269 315
270 modules.info = { 316 modules.info = {
271 platform: "gecko", 317 platform: "gecko",
272 platformVersion: "34.0", 318 platformVersion: "34.0",
273 application: "firefox", 319 application: "firefox",
274 applicationVersion: "34.0", 320 applicationVersion: "34.0",
275 addonName: "adblockplus", 321 addonName: "adblockplus",
276 addonVersion: "2.6.7" 322 addonVersion: "2.6.7"
277 }; 323 };
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 docDomain: "example.com" 456 docDomain: "example.com"
411 }, 457 },
412 filter: { 458 filter: {
413 text: "||example.com/some-annoying-popup$popup", 459 text: "||example.com/some-annoying-popup$popup",
414 whitelisted: false, 460 whitelisted: false,
415 userDefined: true, 461 userDefined: true,
416 subscription: null 462 subscription: null
417 } 463 }
418 }); 464 });
419 }); 465 });
466
467 if (params.safariContentBlocker)
468 {
469 global.safari = {
470 extension: {
471 setContentBlocker: function() {}
472 }
473 };
474 }
420 })(this); 475 })(this);
OLDNEW
« no previous file with comments | « README.md ('k') | locale/en-US/options.json » ('j') | locale/en-US/options.json » ('J')

Powered by Google App Engine
This is Rietveld