Index: background.js |
=================================================================== |
--- a/background.js |
+++ b/background.js |
@@ -73,7 +73,8 @@ |
addSubscription: false, |
filterError: false, |
downloadStatus: "synchronize_ok", |
- showNotificationUI: false |
+ showNotificationUI: false, |
+ showPageOptions: false |
}; |
updateFromURL(params); |
@@ -135,6 +136,33 @@ |
} |
}; |
+ let subscriptionServer = "https://easylist-downloads.adblockplus.org"; |
+ let subscriptionDetails = { |
+ [`${subscriptionServer}/easylistgermany+easylist.txt`]: { |
+ title: "EasyList Germany+EasyList", |
+ installed: true |
+ }, |
+ [`${subscriptionServer}/exceptionrules.txt`]: { |
+ title: "Allow non-intrusive advertising", |
+ installed: true |
+ }, |
+ [`${subscriptionServer}/exceptionrules-privacy.txt`]: { |
+ title: "Allow only nonintrusive ads that are privacy-friendly" |
+ }, |
+ [`${subscriptionServer}/fanboy-social.txt`]: { |
+ title: "Fanboy's Social Blocking List", |
+ installed: true |
+ }, |
+ [`${subscriptionServer}/antiadblockfilters.txt`]: { |
+ title: "Adblock Warning Removal List", |
+ installed: true, |
+ disabled: true |
+ }, |
+ "~user~786254": { |
+ installed: true |
+ } |
+ }; |
+ |
function Subscription(url) |
{ |
this.url = url; |
@@ -143,13 +171,11 @@ |
this.homepage = "https://easylist.adblockplus.org/"; |
this.downloadStatus = params.downloadStatus; |
- if (subscriptions[this.url] && subscriptions[this.url].title) |
+ let details = subscriptionDetails[this.url]; |
+ if (details) |
{ |
- this.title = subscriptions[this.url].title; |
- } |
- if (this.url == prefs.subscriptions_exceptionsurl_privacy) |
- { |
- this.title = "Allow only nonintrusive ads that are privacy-friendly"; |
+ this.disabled = !!details.disabled; |
+ this.title = details.title || ""; |
} |
} |
Subscription.prototype = |
@@ -171,7 +197,7 @@ |
{ |
this._lastDownload = value; |
modules.filterNotifier.FilterNotifier.emit("subscription.lastDownload", |
- this); |
+ this); |
} |
}; |
Subscription.fromURL = function(url) |
@@ -225,7 +251,7 @@ |
{ |
knownSubscriptions[subscription.url] = fromURL(subscription.url); |
modules.filterNotifier.FilterNotifier.emit("subscription.added", |
- subscription); |
+ subscription); |
} |
}, |
@@ -237,7 +263,7 @@ |
{ |
delete knownSubscriptions[subscription.url]; |
modules.filterNotifier.FilterNotifier.emit("subscription.removed", |
- subscription); |
+ subscription); |
} |
}, |
@@ -260,7 +286,7 @@ |
{ |
customSubscription.filters.splice(i, 1); |
modules.filterNotifier.FilterNotifier.emit("filter.removed", |
- filter); |
+ filter); |
return; |
} |
} |
@@ -448,32 +474,16 @@ |
]; |
let knownFilters = filters.map(modules.filterClasses.Filter.fromText); |
- let subscriptions = { |
- "https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt": { |
- title: "EasyList Germany+EasyList" |
- }, |
- "https://easylist-downloads.adblockplus.org/exceptionrules.txt": { |
- title: "Allow non-intrusive advertising" |
- }, |
- "https://easylist-downloads.adblockplus.org/fanboy-social.txt": { |
- title: "Fanboy's Social Blocking List", |
- type: "social" |
- }, |
- "https://easylist-downloads.adblockplus.org/antiadblockfilters.txt": { |
- title: "Adblock Warning Removal List" |
- }, |
- "~user~78625": { |
- title: "My filter list" |
- } |
- }; |
+ let knownSubscriptions = Object.create(null); |
+ for (let url in subscriptionDetails) |
+ { |
+ if (!subscriptionDetails[url].installed) |
+ continue; |
- let knownSubscriptions = Object.create(null); |
- for (let subscriptionUrl in subscriptions) |
- { |
- knownSubscriptions[subscriptionUrl] = |
- modules.subscriptionClasses.Subscription.fromURL(subscriptionUrl); |
+ knownSubscriptions[url] = |
+ modules.subscriptionClasses.Subscription.fromURL(url); |
} |
- let customSubscription = knownSubscriptions["~user~78625"]; |
+ let customSubscription = knownSubscriptions["~user~786254"]; |
if (params.addSubscription) |
{ |
@@ -493,6 +503,32 @@ |
}, 1000); |
} |
+ if (params.showPageOptions) |
+ { |
+ // We don't know how long it will take for the page to fully load |
+ // so we'll post the message after one second |
+ setTimeout(() => |
+ { |
+ let host = "example.com"; |
+ let isWhitelisted = customSubscription.filters |
+ .some((filter) => filter.text == `@@||${host}^$document`); |
+ window.postMessage({ |
+ type: "message", |
+ payload: { |
+ type: "app.open", |
+ what: "options", |
+ action: "showPageOptions", |
+ args: [ |
+ { |
+ host, |
+ whitelisted: isWhitelisted |
+ } |
+ ] |
+ } |
+ }, "*"); |
+ }, 1000); |
+ } |
+ |
ext.devtools.onCreated.addListener((panel) => |
{ |
// blocked request |