Index: messageResponder.js |
diff --git a/messageResponder.js b/messageResponder.js |
index 3bb5c9b4016e2d540d6377e0d05fa15d2e42e66f..3373b77e7f74dd84e1ccababfe3d60b70b492c6f 100644 |
--- a/messageResponder.js |
+++ b/messageResponder.js |
@@ -15,31 +15,27 @@ |
* along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
*/ |
-(function(global) |
+"use strict"; |
+ |
{ |
- if (!global.ext) |
- global.ext = require("ext_background"); |
- |
- var port = require("messaging").port; |
- var Prefs = require("prefs").Prefs; |
- var Utils = require("utils").Utils; |
- var FilterStorage = require("filterStorage").FilterStorage; |
- var FilterNotifier = require("filterNotifier").FilterNotifier; |
- var defaultMatcher = require("matcher").defaultMatcher; |
- var ElemHideEmulation = require("elemHideEmulation").ElemHideEmulation; |
- var NotificationStorage = require("notification").Notification; |
- |
- var filterClasses = require("filterClasses"); |
- var Filter = filterClasses.Filter; |
- var BlockingFilter = filterClasses.BlockingFilter; |
- var RegExpFilter = filterClasses.RegExpFilter; |
- var Synchronizer = require("synchronizer").Synchronizer; |
- |
- var info = require("info"); |
- var subscriptionClasses = require("subscriptionClasses"); |
- var Subscription = subscriptionClasses.Subscription; |
- var DownloadableSubscription = subscriptionClasses.DownloadableSubscription; |
- var SpecialSubscription = subscriptionClasses.SpecialSubscription; |
+ var ext = ext || require("ext_background"); |
+ |
+ const {port} = require("messaging"); |
+ const {Prefs} = require("prefs"); |
+ const {Utils} = require("utils"); |
+ const {FilterStorage} = require("filterStorage"); |
+ const {FilterNotifier} = require("filterNotifier"); |
+ const {defaultMatcher} = require("matcher"); |
+ const {ElemHideEmulation} = require("elemHideEmulation"); |
+ const {NotificationStorage} = require("notification"); |
Thomas Greiner
2017/01/18 11:40:09
This doesn't work. What you'd want to do is:
cons
kzar
2017/01/18 11:54:41
Done.
|
+ |
+ const {Filter, BlockingFilter, RegExpFilter} = require("filterClasses"); |
+ const {Synchronizer} = require("synchronizer"); |
+ |
+ const info = require("info"); |
+ const {Subscription, |
+ DownloadableSubscription, |
+ SpecialSubscription} = require("subscriptionClasses"); |
// Some modules doesn't exist on Firefox. Moreover, |
// require() throws an exception on Firefox in that case. |
@@ -59,10 +55,9 @@ |
function convertObject(keys, obj) |
{ |
- var result = {}; |
- for (var i = 0; i < keys.length; i++) |
+ let result = {}; |
+ for (let key of keys) |
{ |
- var key = keys[i]; |
if (key in obj) |
result[key] = obj[key]; |
} |
@@ -71,18 +66,18 @@ |
function convertSubscription(subscription) |
{ |
- var obj = convertObject(["disabled", "downloadStatus", "homepage", |
+ let obj = convertObject(["disabled", "downloadStatus", "homepage", |
"lastDownload", "title", "url"], subscription); |
obj.isDownloading = Synchronizer.isExecuting(subscription.url); |
return obj; |
} |
- var convertFilter = convertObject.bind(null, ["text"]); |
+ let convertFilter = convertObject.bind(null, ["text"]); |
- var changeListeners = new global.ext.PageMap(); |
- var listenedPreferences = Object.create(null); |
- var listenedFilterChanges = Object.create(null); |
- var messageTypes = { |
+ let changeListeners = new ext.PageMap(); |
+ let listenedPreferences = Object.create(null); |
+ let listenedFilterChanges = Object.create(null); |
+ let messageTypes = { |
"app": "app.respond", |
"filter": "filters.respond", |
"pref": "prefs.respond", |
@@ -91,14 +86,14 @@ |
function sendMessage(type, action) |
{ |
- var pages = changeListeners.keys(); |
+ let pages = changeListeners.keys(); |
if (pages.length == 0) |
return; |
- var args = []; |
- for (var i = 2; i < arguments.length; i++) |
+ let args = []; |
+ for (let i = 2; i < arguments.length; i++) |
{ |
- var arg = arguments[i]; |
+ let arg = arguments[i]; |
if (arg instanceof Subscription) |
args.push(convertSubscription(arg)); |
else if (arg instanceof Filter) |
@@ -107,11 +102,10 @@ |
args.push(arg); |
} |
- for (var j = 0; j < pages.length; j++) |
+ for (let page of pages) |
{ |
- var page = pages[j]; |
- var filters = changeListeners.get(page); |
- var actions = filters[type]; |
+ let filters = changeListeners.get(page); |
+ let actions = filters[type]; |
if (actions && actions.indexOf(action) != -1) |
{ |
page.sendMessage({ |
@@ -125,9 +119,9 @@ |
function addFilterListeners(type, actions) |
{ |
- actions.forEach(function(action) |
+ for (let action of actions) |
{ |
- var name; |
+ let name; |
if (type == "filter" && action == "loaded") |
name = "load"; |
else |
@@ -138,18 +132,18 @@ |
listenedFilterChanges[name] = null; |
FilterNotifier.on(name, function() |
{ |
- var args = [type, action]; |
- for (var i = 0; i < arguments.length; i++) |
- args.push(arguments[i]); |
+ let args = [type, action]; |
+ for (let arg of arguments) |
+ args.push(arg); |
sendMessage.apply(null, args); |
}); |
} |
- }); |
+ }; |
Thomas Greiner
2017/01/18 11:40:09
Detail: This semicolon is still left over from you
kzar
2017/01/18 11:54:41
Whoops, Done.
|
} |
function getListenerFilters(page) |
{ |
- var listenerFilters = changeListeners.get(page); |
+ let listenerFilters = changeListeners.get(page); |
if (!listenerFilters) |
{ |
listenerFilters = Object.create(null); |
@@ -162,7 +156,7 @@ |
{ |
if (message.what == "issues") |
{ |
- var subscriptionInit = tryRequire("subscriptionInit"); |
+ let subscriptionInit = tryRequire("subscriptionInit"); |
return { |
filterlistsReinitialized: subscriptionInit ? subscriptionInit.reinitialized : false, |
legacySafariVersion: (info.platform == "safari" && ( |
@@ -177,7 +171,7 @@ |
if (message.what == "localeInfo") |
{ |
- var bidiDir; |
+ let bidiDir; |
if ("chromeRegistry" in Utils) |
bidiDir = Utils.chromeRegistry.isLocaleRTL("adblockplus") ? "rtl" : "ltr"; |
else |
@@ -212,8 +206,8 @@ |
port.on("filters.add", (message, sender) => |
{ |
- var result = require("filterValidation").parseFilter(message.text); |
- var errors = []; |
+ let result = require("filterValidation").parseFilter(message.text); |
+ let errors = []; |
if (result.error) |
errors.push(result.error.toString()); |
else if (result.filter) |
@@ -224,7 +218,7 @@ |
port.on("filters.blocked", (message, sender) => |
{ |
- var filter = defaultMatcher.matchesAny(message.url, |
+ let filter = defaultMatcher.matchesAny(message.url, |
RegExpFilter.typeMap[message.requestType], message.docDomain, |
message.thirdParty); |
@@ -235,16 +229,16 @@ |
{ |
if (message.what == "elemhideemulation") |
{ |
- var filters = []; |
- var checkWhitelisted = require("whitelisting").checkWhitelisted; |
+ let filters = []; |
+ const {checkWhitelisted} = require("whitelisting"); |
if (Prefs.enabled && !checkWhitelisted(sender.page, sender.frame, |
RegExpFilter.typeMap.DOCUMENT | |
RegExpFilter.typeMap.ELEMHIDE)) |
{ |
- var hostname = sender.frame.url.hostname; |
+ const hostname = sender.frame.url.hostname; |
Thomas Greiner
2017/01/18 11:40:09
Detail: I don't see a compelling enough use-case f
kzar
2017/01/18 11:54:41
Done.
|
filters = ElemHideEmulation.getRulesForDomain(hostname); |
- filters = filters.map(function(filter) |
+ filters = filters.map(filter => |
{ |
return { |
selector: filter.selector, |
@@ -255,7 +249,7 @@ |
return filters; |
} |
- var subscription = Subscription.fromURL(message.subscriptionUrl); |
+ let subscription = Subscription.fromURL(message.subscriptionUrl); |
if (!subscription) |
return []; |
@@ -264,11 +258,10 @@ |
port.on("filters.importRaw", (message, sender) => |
{ |
- var result = require("filterValidation").parseFilters(message.text); |
- var errors = []; |
- for (var i = 0; i < result.errors.length; i++) |
+ let result = require("filterValidation").parseFilters(message.text); |
+ let errors = []; |
+ for (let error of result.errors) |
{ |
- var error = result.errors[i]; |
if (error.type != "unexpected-filter-list-header") |
errors.push(error.toString()); |
} |
@@ -276,10 +269,9 @@ |
if (errors.length > 0) |
return errors; |
- var seenFilter = Object.create(null); |
- for (var i = 0; i < result.filters.length; i++) |
+ let seenFilter = Object.create(null); |
+ for (let filter of result.filters) |
{ |
- var filter = result.filters[i]; |
FilterStorage.addFilter(filter); |
seenFilter[filter.text] = null; |
} |
@@ -287,15 +279,14 @@ |
if (!message.removeExisting) |
return errors; |
- for (var i = 0; i < FilterStorage.subscriptions.length; i++) |
+ for (let subscription of FilterStorage.subscriptions) |
{ |
- var subscription = FilterStorage.subscriptions[i]; |
if (!(subscription instanceof SpecialSubscription)) |
continue; |
- for (var j = subscription.filters.length - 1; j >= 0; j--) |
+ for (let j = subscription.filters.length - 1; j >= 0; j--) |
{ |
- var filter = subscription.filters[j]; |
+ let filter = subscription.filters[j]; |
if (/^@@\|\|([^\/:]+)\^\$document$/.test(filter.text)) |
continue; |
@@ -315,8 +306,8 @@ |
port.on("filters.remove", (message, sender) => |
{ |
- var filter = Filter.fromText(message.text); |
- var subscription = null; |
+ let filter = Filter.fromText(message.text); |
+ let subscription = null; |
if (message.subscriptionUrl) |
subscription = Subscription.fromURL(message.subscriptionUrl); |
@@ -334,17 +325,17 @@ |
port.on("prefs.listen", (message, sender) => |
{ |
getListenerFilters(sender.page).pref = message.filter; |
- message.filter.forEach(function(preference) |
+ for (let preference of message.filter) |
{ |
if (!(preference in listenedPreferences)) |
{ |
listenedPreferences[preference] = null; |
- Prefs.on(preference, function() |
+ Prefs.on(preference, () => |
{ |
sendMessage("pref", preference, Prefs[preference]); |
}); |
} |
- }); |
+ } |
}); |
port.on("prefs.toggle", (message, sender) => |
@@ -357,7 +348,7 @@ |
port.on("subscriptions.add", (message, sender) => |
{ |
- var subscription = Subscription.fromURL(message.url); |
+ let subscription = Subscription.fromURL(message.url); |
if ("title" in message) |
subscription.title = message.title; |
if ("homepage" in message) |
@@ -365,7 +356,7 @@ |
if (message.confirm) |
{ |
- ext.showOptions(function() |
+ ext.showOptions(() => |
{ |
sendMessage("app", "addSubscription", subscription); |
}); |
@@ -382,7 +373,7 @@ |
port.on("subscriptions.get", (message, sender) => |
{ |
- var subscriptions = FilterStorage.subscriptions.filter(function(s) |
+ let subscriptions = FilterStorage.subscriptions.filter(s => |
{ |
if (message.ignoreDisabled && s.disabled) |
return false; |
@@ -404,14 +395,14 @@ |
port.on("subscriptions.remove", (message, sender) => |
{ |
- var subscription = Subscription.fromURL(message.url); |
+ let subscription = Subscription.fromURL(message.url); |
if (subscription.url in FilterStorage.knownSubscriptions) |
FilterStorage.removeSubscription(subscription); |
}); |
port.on("subscriptions.toggle", (message, sender) => |
{ |
- var subscription = Subscription.fromURL(message.url); |
+ let subscription = Subscription.fromURL(message.url); |
if (subscription.url in FilterStorage.knownSubscriptions) |
{ |
if (subscription.disabled || message.keepInstalled) |
@@ -432,13 +423,12 @@ |
port.on("subscriptions.update", (message, sender) => |
{ |
- var subscriptions = message.url ? [Subscription.fromURL(message.url)] : |
+ let subscriptions = message.url ? [Subscription.fromURL(message.url)] : |
FilterStorage.subscriptions; |
- for (var i = 0; i < subscriptions.length; i++) |
+ for (let subscription of subscriptions) |
{ |
- var subscription = subscriptions[i]; |
if (subscription instanceof DownloadableSubscription) |
Synchronizer.execute(subscription, true); |
} |
}); |
-})(this); |
+} |