From 4d82e307adbef93a2580521900eafae1bde47096 Mon Sep 17 00:00:00 2001 From: nowrep Date: Wed, 27 Feb 2013 19:51:34 +0100 Subject: [PATCH] [AdBlock] Download also whitelist rules from EasyList. --- src/lib/adblock/adblocksubscription.cpp | 21 ++++++++++++--------- src/lib/adblock/adblocksubscription.h | 4 ++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/lib/adblock/adblocksubscription.cpp b/src/lib/adblock/adblocksubscription.cpp index 49b3a0e2b..57ddba71f 100644 --- a/src/lib/adblock/adblocksubscription.cpp +++ b/src/lib/adblock/adblocksubscription.cpp @@ -172,7 +172,7 @@ void AdBlockSubscription::subscriptionDownloaded() m_reply = 0; } -void AdBlockSubscription::saveDownloadedData(QByteArray &data) +void AdBlockSubscription::saveDownloadedData(const QByteArray &data) { QFile file(m_filePath); @@ -374,6 +374,11 @@ void AdBlockSubscription::populateCache() } } +AdBlockSubscription::~AdBlockSubscription() +{ + qDeleteAll(m_rules); +} + // AdBlockEasyList AdBlockEasyList::AdBlockEasyList(QObject* parent) @@ -388,7 +393,7 @@ bool AdBlockEasyList::canBeRemoved() const return false; } -void AdBlockEasyList::saveDownloadedData(QByteArray &data) +void AdBlockEasyList::saveDownloadedData(const QByteArray &data) { QFile file(filePath()); @@ -399,9 +404,12 @@ void AdBlockEasyList::saveDownloadedData(QByteArray &data) // Third-party advertisers rules are with start domain (||) placeholder which needs regexps // So we are ignoring it for keeping good performance - data = data.left(data.indexOf(QLatin1String("!-----------------------------Third-party adverts-----------------------------!"))); + // But we will use whitelist rules at the end of list - file.write(data); + QByteArray part1 = data.left(data.indexOf(QLatin1String("!-----------------------------Third-party adverts-----------------------------!"))); + QByteArray part2 = data.mid(data.indexOf(QLatin1String("!---------------------------------Whitelists----------------------------------!"))); + + file.write(part1 + part2); file.close(); } @@ -514,8 +522,3 @@ const AdBlockRule* AdBlockCustomList::replaceRule(AdBlockRule* rule, int offset) return m_rules[offset]; } - -AdBlockSubscription::~AdBlockSubscription() -{ - qDeleteAll(m_rules); -} diff --git a/src/lib/adblock/adblocksubscription.h b/src/lib/adblock/adblocksubscription.h index ad6a57b7c..94065af38 100644 --- a/src/lib/adblock/adblocksubscription.h +++ b/src/lib/adblock/adblocksubscription.h @@ -107,7 +107,7 @@ protected slots: void subscriptionDownloaded(); protected: - virtual void saveDownloadedData(QByteArray &data); + virtual void saveDownloadedData(const QByteArray &data); void populateCache(); @@ -140,7 +140,7 @@ public: bool canBeRemoved() const; protected: - void saveDownloadedData(QByteArray &data); + void saveDownloadedData(const QByteArray &data); }; class AdBlockCustomList : public AdBlockSubscription