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

Unified Diff: src/org/adblockplus/sbrowser/contentblocker/engine/Subscriptions.java

Issue 29370856: Issue 4772 - Add temporary fix for removing unsupported filters (Closed)
Patch Set: Referencing issue and inlining filter supported check Created Feb. 9, 2017, 9:45 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: src/org/adblockplus/sbrowser/contentblocker/engine/Subscriptions.java
===================================================================
--- a/src/org/adblockplus/sbrowser/contentblocker/engine/Subscriptions.java
+++ b/src/org/adblockplus/sbrowser/contentblocker/engine/Subscriptions.java
@@ -36,16 +36,19 @@ import android.util.Log;
* This class holds all listed subscriptions and manages the subscription
* aggregation cache folder.
*/
final class Subscriptions
{
private static final String TAG = Subscriptions.class.getSimpleName();
private static final String[] USER_SUBSCRIPTIONS =
{ Engine.USER_FILTERS_TITLE, Engine.USER_EXCEPTIONS_TITLE };
+ // Filters that begin with '|$' , '||$' , '@@|$' or '@@||$' need to be removed
+ // See https://issues.adblockplus.org/ticket/4772
+ private static final String UNSUPPORTED_FILTERS_REGEX = "^(\\|\\$|\\|\\|\\$|@@\\|\\$|@@\\|\\|\\$).*";
private final HashMap<String, Subscription> subscriptions = new HashMap<String, Subscription>();
private final Engine engine;
private final File subscriptionFolder;
private final File cacheFolder;
private final boolean wasUnitialized;
private Subscriptions(final Engine engine, final File appFolder, final File cacheFolder)
@@ -181,18 +184,27 @@ final class Subscriptions
final BufferedWriter w = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(output), "UTF-8"));
try
{
Log.d(TAG, "Writing " + filters.size() + " filters");
Engine.writeFilterHeaders(w);
for (final String filter : filters)
{
- w.write(filter);
- w.write('\n');
+ // This is a temporary fix to not write filters that might crash Samsung Internet
+ // See https://issues.adblockplus.org/ticket/4772
+ if (!filter.matches(UNSUPPORTED_FILTERS_REGEX))
+ {
+ w.write(filter);
+ w.write('\n');
+ }
+ else
+ {
+ Log.d(TAG, "Ignoring unsupported filter: " + filter);
+ }
}
}
finally
{
w.close();
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld