diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-05-25 16:12:29 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-05-25 16:12:29 +0200 |
commit | 49324c8d4acbf36902754a2f1c62fb134df1b19e (patch) | |
tree | 3e4be38562d17f01a6051b9a895c5681e8f0b8ff /src/blocker/filterrule.cpp | |
parent | Displaying filter rules in a tree model view (diff) | |
download | smolbote-49324c8d4acbf36902754a2f1c62fb134df1b19e.tar.xz |
Merged FilterRule into FilterNode
Diffstat (limited to 'src/blocker/filterrule.cpp')
-rw-r--r-- | src/blocker/filterrule.cpp | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/blocker/filterrule.cpp b/src/blocker/filterrule.cpp deleted file mode 100644 index f7ba00b..0000000 --- a/src/blocker/filterrule.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - ** - ** smolbote: yet another qute browser - ** Copyright (C) 2017 Xian Nox - ** - ** This program is free software: you can redistribute it and/or modify - ** it under the terms of the GNU General Public License as published by - ** the Free Software Foundation, either version 3 of the License, or - ** (at your option) any later version. - ** - ** This program is distributed in the hope that it will be useful, - ** but WITHOUT ANY WARRANTY; without even the implied warranty of - ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - ** GNU General Public License for more details. - ** - ** You should have received a copy of the GNU General Public License - ** along with this program. If not, see <http://www.gnu.org/licenses/>. - ** - ******************************************************************************/ - -#include "filterrule.h" - -FilterRule::FilterRule(const QString firstPartyUrl, const QString requestUrl, ResourceRules rules, bool shouldBlock, QObject *parent) : - QObject(parent) -{ - m_firstPartyUrl.setPattern(firstPartyUrl); - m_requestUrl.setPattern(requestUrl); - m_rules = rules; - m_shouldBlock = shouldBlock; - - m_valid = true; - -#ifdef DEBUG_VERBOSE - qDebug("Created rule [%s] [%s]", qUtf8Printable(firstPartyUrl), qUtf8Printable(requestUrl)); -#endif - -} - -bool FilterRule::hasMatch(const QWebEngineUrlRequestInfo &info) -{ - if(m_firstPartyUrl.hasMatch(info.firstPartyUrl().toString()) && m_requestUrl.hasMatch(info.requestUrl().toString())) { - return true; - } else { - return false; - } -} - -bool FilterRule::shouldBlock(const QWebEngineUrlRequestInfo &info) -{ - if(!m_valid) { - return false; - } - - // Check options - switch (info.resourceType()) { - case QWebEngineUrlRequestInfo::ResourceTypeMainFrame: - return testFlag(MainFrame); - case QWebEngineUrlRequestInfo::ResourceTypeSubFrame: - return testFlag(SubFrame); - case QWebEngineUrlRequestInfo::ResourceTypeStylesheet: - return testFlag(Stylesheet); - case QWebEngineUrlRequestInfo::ResourceTypeScript: - return testFlag(Script); - case QWebEngineUrlRequestInfo::ResourceTypeImage: - return testFlag(Image); - case QWebEngineUrlRequestInfo::ResourceTypeFontResource: - return testFlag(FontResource); - case QWebEngineUrlRequestInfo::ResourceTypeSubResource: - return testFlag(SubResource); - case QWebEngineUrlRequestInfo::ResourceTypeObject: - return testFlag(Object); - case QWebEngineUrlRequestInfo::ResourceTypeMedia: - return testFlag(Media); - case QWebEngineUrlRequestInfo::ResourceTypeWorker: - return testFlag(Worker); - case QWebEngineUrlRequestInfo::ResourceTypeSharedWorker: - return testFlag(SharedWorker); - case QWebEngineUrlRequestInfo::ResourceTypePrefetch: - return testFlag(Prefetch); - case QWebEngineUrlRequestInfo::ResourceTypeFavicon: - return testFlag(Favicon); - case QWebEngineUrlRequestInfo::ResourceTypeXhr: - return testFlag(Xhr); - case QWebEngineUrlRequestInfo::ResourceTypePing: - return testFlag(Ping); - case QWebEngineUrlRequestInfo::ResourceTypeServiceWorker: - return testFlag(ServiceWorker); - case QWebEngineUrlRequestInfo::ResourceTypeCspReport: - return testFlag(CspReport); - case QWebEngineUrlRequestInfo::ResourceTypePluginResource: - return testFlag(PluginResource); - case QWebEngineUrlRequestInfo::ResourceTypeUnknown: - break; - } - - return m_shouldBlock; - -} - -bool FilterRule::isValid() -{ - return m_valid; -} - -QString FilterRule::filter() const -{ - return "'" + m_firstPartyUrl.pattern() + "' | '" + m_requestUrl.pattern() + "'"; -} - -bool FilterRule::testFlag(ResourceType flag) -{ - if(m_rules.allowed.testFlag(flag)) { - return false; - } else if(m_rules.blocked.testFlag(flag)) { - return true; - } else { - return m_shouldBlock; - } -} |