diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-07-07 19:45:45 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-07-07 19:45:45 +0200 |
commit | 0e4ee2ed1c64130262e42ddfc87f2d8944c5a10c (patch) | |
tree | 45b852937529d19101dee06c82c924c57c3a47aa /lib/web/urlfilter/filterdomain.h | |
parent | Add web/urlfilter (diff) | |
download | smolbote-0e4ee2ed1c64130262e42ddfc87f2d8944c5a10c.tar.xz |
Integrate urlfilter with urlrequestinterceptor
Diffstat (limited to 'lib/web/urlfilter/filterdomain.h')
-rw-r--r-- | lib/web/urlfilter/filterdomain.h | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/lib/web/urlfilter/filterdomain.h b/lib/web/urlfilter/filterdomain.h index 2173bfc..b356a32 100644 --- a/lib/web/urlfilter/filterdomain.h +++ b/lib/web/urlfilter/filterdomain.h @@ -3,28 +3,32 @@ #include <QObject> #include <QVector> +#include <memory> +#include "filterrule.h" + +typedef std::unique_ptr<FilterRule> FilterRule_ptr; +typedef QVector<QString> QStringVector; class FilterDomain : public QObject { Q_OBJECT public: - enum MatchType { - Whitelist, // only match added domains - Blacklist, // only match domains not added - WhitelistAll, // match all domains - BlacklistAll // match no domains - }; - - explicit FilterDomain(MatchType type = Whitelist, QObject *parent = nullptr); + explicit FilterDomain(QObject *parent = nullptr); - void setType(MatchType type); - void addDomain(const QString &domain); + void addDomain(const QString &domain, bool isException = false); + void addRule(FilterRule_ptr &rule); bool hasMatch(const QString &host) const; + void process(QWebEngineUrlRequestInfo &info) const; private: - MatchType m_type; - QVector<QString> m_domains; + Q_DISABLE_COPY(FilterDomain) + + // lists of domains this rule group? is allowed on and blocked on + QStringVector m_allowedOnDomains; + QStringVector m_blockedOnDomains; + + std::vector<FilterRule_ptr> m_rules; }; // function taken from KDE/Falkon |