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

Unified Diff: lib/filterListener.js

Issue 29965593: Issue 7178 - Remove filter order randomization (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Created Dec. 19, 2018, 9:04 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/filterListener.js
===================================================================
--- a/lib/filterListener.js
+++ b/lib/filterListener.js
@@ -212,47 +212,25 @@
ElemHideEmulation.remove(filter);
else
ElemHideExceptions.remove(filter);
}
else if (filter instanceof SnippetFilter)
Snippets.remove(filter);
}
-const primes = [101, 109, 131, 149, 163, 179, 193, 211, 229, 241];
-
-function addSubscriptionFilters(subscription)
-{
- // We add filters using pseudo-random ordering. Reason is that ElemHide will
- // assign consecutive filter IDs that might be visible to the website. The
- // randomization makes sure that no conclusion can be made about the actual
- // filters applying there. We have ten prime numbers to use as iteration step,
- // any of those can be chosen as long as the array length isn't divisible by
- // it.
- let len = subscription.filterCount;
- if (!len)
- return;
-
- let current = (Math.random() * len) | 0;
- let step;
- do
- {
- step = primes[(Math.random() * primes.length) | 0];
- } while (len % step == 0);
-
- for (let i = 0; i < len; i++, current = (current + step) % len)
- addFilter(subscription.filterAt(current));
-}
-
function onSubscriptionAdded(subscription)
{
FilterListener.setDirty(1);
if (!subscription.disabled)
- addSubscriptionFilters(subscription);
+ {
+ for (let filter of subscription.filters())
+ addFilter(filter);
+ }
}
function onSubscriptionRemoved(subscription)
{
FilterListener.setDirty(1);
if (!subscription.disabled)
{
@@ -264,17 +242,18 @@
function onSubscriptionDisabled(subscription, newValue)
{
FilterListener.setDirty(1);
if (filterStorage.knownSubscriptions.has(subscription.url))
{
if (newValue == false)
{
- addSubscriptionFilters(subscription);
+ for (let filter of subscription.filters())
+ addFilter(filter);
}
else
{
for (let filter of subscription.filters())
removeFilter(filter);
}
}
}
@@ -284,17 +263,18 @@
FilterListener.setDirty(1);
if (!subscription.disabled &&
filterStorage.knownSubscriptions.has(subscription.url))
{
for (let filter of oldFilters)
removeFilter(filter);
- addSubscriptionFilters(subscription);
+ for (let filter of subscription.filters())
+ addFilter(filter);
}
}
function onFilterHitCount(filter, newValue)
{
if (newValue == 0)
FilterListener.setDirty(0);
else
@@ -345,16 +325,19 @@
ElemHide.clear();
ElemHideEmulation.clear();
ElemHideExceptions.clear();
Snippets.clear();
for (let subscription of filterStorage.subscriptions())
{
if (!subscription.disabled)
- addSubscriptionFilters(subscription);
+ {
+ for (let filter of subscription.filters())
+ addFilter(filter);
+ }
}
}
function onSave()
{
isDirty = 0;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld