/******************************************************************************* ** ** 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 . ** ******************************************************************************/ #include "blockerrule.h" BlockerRule::BlockerRule(RegExp firstPartyUrl, RegExp requestUrl, NavigationType nav, ResourceType res, bool shouldBlock, QObject *parent) : QObject(parent) { m_firstPartyUrl = firstPartyUrl; m_requestUrl = requestUrl; m_navRules = nav; m_resRules = res; m_shouldBlock = shouldBlock; m_valid = true; } bool BlockerRule::match(const QWebEngineUrlRequestInfo &info) { if(!m_valid) { return false; } // if both domain and rule match if(m_firstPartyUrl.hasMatch(info.firstPartyUrl().toString()) && m_requestUrl.hasMatch(info.requestUrl().toString())) { // TODO: check options return m_shouldBlock; } // domain and/or rule do not match return false; } bool BlockerRule::isValid() { return m_valid; } QString BlockerRule::filter() const { return m_firstPartyUrl.pattern() + m_requestUrl.pattern(); }