Index: lib/subscriptionInit.js |
=================================================================== |
--- a/lib/subscriptionInit.js |
+++ b/lib/subscriptionInit.js |
@@ -53,28 +53,28 @@ |
if (firstRun && (!FilterStorage.firstRun || Prefs.currentVersion)) |
reinitialized = true; |
Prefs.currentVersion = info.addonVersion; |
} |
/** |
- * Determines whether to add the default ad blocking subscription. |
+ * Determines whether to add the default ad blocking subscriptions. |
* Returns true, if there are no filter subscriptions besides those |
* other subscriptions added automatically, and no custom filters. |
* |
* On first run, this logic should always result in true since there |
* is no data and therefore no subscriptions. But it also causes the |
- * default ad blocking subscription to be added again after some |
+ * default ad blocking subscriptions to be added again after some |
* data corruption or misconfiguration. |
* |
* @return {boolean} |
*/ |
-function shouldAddDefaultSubscription() |
+function shouldAddDefaultSubscriptions() |
{ |
for (let subscription of FilterStorage.subscriptions) |
{ |
if (subscription instanceof DownloadableSubscription && |
subscription.url != Prefs.subscriptions_exceptionsurl && |
subscription.url != Prefs.subscriptions_antiadblockurl) |
return false; |
@@ -205,18 +205,19 @@ |
let antiAdblockSubscription = Subscription.fromURL( |
Prefs.subscriptions_antiadblockurl |
); |
antiAdblockSubscription.disabled = true; |
subscriptions.push(antiAdblockSubscription); |
} |
} |
- // Add default ad blocking subscription (e.g. EasyList) |
- if (shouldAddDefaultSubscription()) |
+ // Add default ad blocking subscriptions (e.g. EasyList, Anti-Circumvention) |
+ let addDefaultSubscription = shouldAddDefaultSubscriptions(); |
+ if (addDefaultSubscription || !Prefs.subscriptions_addedanticv) |
{ |
return fetch("subscriptions.xml") |
.then(response => response.text()) |
.then(text => |
{ |
let doc = new DOMParser().parseFromString(text, "application/xml"); |
let nodes = doc.getElementsByTagName("subscription"); |
@@ -227,22 +228,30 @@ |
{ |
let node = defaultSubscriptions[name]; |
if (!node) |
continue; |
let url = node.getAttribute("url"); |
if (url) |
{ |
+ // Make sure that we don't add Easylist again if we want |
+ // to just add the Anti-Circumvention subscription. |
+ let type = node.getAttribute("type"); |
+ if (!addDefaultSubscription && type != "circumvention") |
+ continue; |
+ |
let subscription = Subscription.fromURL(url); |
subscription.disabled = false; |
subscription.title = node.getAttribute("title"); |
subscription.homepage = node.getAttribute("homepage"); |
- subscription.type = node.getAttribute("type"); |
+ subscription.type = type; |
subscriptions.push(subscription); |
+ if (subscription.type == "circumvention") |
+ Prefs.subscriptions_addedanticv = true; |
} |
} |
} |
return subscriptions; |
}); |
} |