From 12f8323ae8e5e469fb0b662f29bd8fedadb85faa Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Sat, 21 Aug 2010 21:40:59 +0200 Subject: Add support for domain option in the ad block module Some ads were not filtered because they were incorrectly matched by the whitelist. This is because we ignore options, including the domain restrictions. For example, the white filter: @@||pagead2.googlesyndication.com/pagead/show_ads.js$domain=kde.org would match any page regardless of the domain restriction. So no ads from pagead2.googlesyndication.com were filtered. This patch adds support for "domain" options in the fallback rules (the other AdBlockRuleImpl rejects options). The domain of the frame making the request is now compared to the option to take the right decision. This patch requires Qt 4.7 with a recent QtWebKit 2.0. --- src/adblock/adblockrulefallbackimpl.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/adblock/adblockrulefallbackimpl.h') diff --git a/src/adblock/adblockrulefallbackimpl.h b/src/adblock/adblockrulefallbackimpl.h index ed0f6dc6..8cb02e10 100644 --- a/src/adblock/adblockrulefallbackimpl.h +++ b/src/adblock/adblockrulefallbackimpl.h @@ -31,17 +31,20 @@ // Qt Includes #include #include +#include class AdBlockRuleFallbackImpl : public AdBlockRuleImpl { public: AdBlockRuleFallbackImpl(const QString &filter); - bool match(const QString &encodedUrl, const QString &encodedUrlLowerCase) const; + bool match(const QNetworkRequest &request, const QString &encodedUrl, const QString &encodedUrlLowerCase) const; private: QString convertPatternToRegExp(const QString &wildcardPattern); QRegExp m_regExp; + QSet m_whiteDomains; + QSet m_blackDomains; }; #endif // ADBLOCKRULEFALLBACKIMPL_H -- cgit v1.2.1