Skip to content

Commit 6737e5d

Browse files
committed
Replace member variables by usage of Request
1 parent 56a6f1f commit 6737e5d

File tree

2 files changed

+27
-36
lines changed

2 files changed

+27
-36
lines changed

src/core/AdblockContentFiltersProfile.cpp

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ void AdblockContentFiltersProfile::deleteNode(Node *node) const
344344
delete node;
345345
}
346346

347-
ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstring(const Node *node, const QString &subString, QString currentRule, NetworkManager::ResourceType resourceType)
347+
ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstring(const Node *node, const QString &subString, QString currentRule, const Request &request) const
348348
{
349349
ContentFiltersManager::CheckResult result;
350350
ContentFiltersManager::CheckResult currentResult;
@@ -354,7 +354,7 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstri
354354
const QChar treeChar(subString.at(i));
355355
bool childrenExists(false);
356356

357-
currentResult = evaluateRulesInNode(node, currentRule, resourceType);
357+
currentResult = evaluateRulesInNode(node, currentRule, request);
358358

359359
if (currentResult.isBlocked)
360360
{
@@ -375,7 +375,7 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstri
375375

376376
for (int k = 0; k < wildcardSubString.length(); ++k)
377377
{
378-
currentResult = checkUrlSubstring(nextNode, wildcardSubString.right(wildcardSubString.length() - k), (currentRule + wildcardSubString.left(k)), resourceType);
378+
currentResult = checkUrlSubstring(nextNode, wildcardSubString.right(wildcardSubString.length() - k), (currentRule + wildcardSubString.left(k)), request);
379379

380380
if (currentResult.isBlocked)
381381
{
@@ -390,7 +390,7 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstri
390390

391391
if (nextNode->value == QLatin1Char('^') && !treeChar.isDigit() && !treeChar.isLetter() && !m_separators.contains(treeChar))
392392
{
393-
currentResult = checkUrlSubstring(nextNode, subString.mid(i), currentRule, resourceType);
393+
currentResult = checkUrlSubstring(nextNode, subString.mid(i), currentRule, request);
394394

395395
if (currentResult.isBlocked)
396396
{
@@ -420,7 +420,7 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstri
420420
currentRule += treeChar;
421421
}
422422

423-
currentResult = evaluateRulesInNode(node, currentRule, resourceType);
423+
currentResult = evaluateRulesInNode(node, currentRule, request);
424424

425425
if (currentResult.isBlocked)
426426
{
@@ -435,7 +435,7 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstri
435435
{
436436
if (node->children.at(i)->value == QLatin1Char('^'))
437437
{
438-
currentResult = evaluateRulesInNode(node, currentRule, resourceType);
438+
currentResult = evaluateRulesInNode(node, currentRule, request);
439439

440440
if (currentResult.isBlocked)
441441
{
@@ -451,41 +451,41 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrlSubstri
451451
return result;
452452
}
453453

454-
ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkRuleMatch(const ContentBlockingRule *rule, const QString &currentRule, NetworkManager::ResourceType resourceType) const
454+
ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkRuleMatch(const ContentBlockingRule *rule, const QString &currentRule, const Request &request) const
455455
{
456456
switch (rule->ruleMatch)
457457
{
458458
case StartMatch:
459-
if (!m_requestUrl.startsWith(currentRule))
459+
if (!request.requestUrl.startsWith(currentRule))
460460
{
461461
return {};
462462
}
463463

464464
break;
465465
case EndMatch:
466-
if (!m_requestUrl.endsWith(currentRule))
466+
if (!request.requestUrl.endsWith(currentRule))
467467
{
468468
return {};
469469
}
470470

471471
break;
472472
case ExactMatch:
473-
if (m_requestUrl != currentRule)
473+
if (request.requestUrl != currentRule)
474474
{
475475
return {};
476476
}
477477

478478
break;
479479
default:
480-
if (!m_requestUrl.contains(currentRule))
480+
if (!request.requestUrl.contains(currentRule))
481481
{
482482
return {};
483483
}
484484

485485
break;
486486
}
487487

488-
const QStringList requestSubdomainList(ContentFiltersManager::createSubdomainList(m_requestHost));
488+
const QStringList requestSubdomainList(ContentFiltersManager::createSubdomainList(request.requestHost));
489489

490490
if (rule->needsDomainCheck && !requestSubdomainList.contains(currentRule.left(currentRule.indexOf(m_domainExpression))))
491491
{
@@ -498,19 +498,19 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkRuleMatch(
498498

499499
if (hasBlockedDomains)
500500
{
501-
isBlocked = resolveDomainExceptions(m_baseUrlHost, rule->blockedDomains);
501+
isBlocked = resolveDomainExceptions(request.baseHost, rule->blockedDomains);
502502

503503
if (!isBlocked)
504504
{
505505
return {};
506506
}
507507
}
508508

509-
isBlocked = (hasAllowedDomains ? !resolveDomainExceptions(m_baseUrlHost, rule->allowedDomains) : isBlocked);
509+
isBlocked = (hasAllowedDomains ? !resolveDomainExceptions(request.baseHost, rule->allowedDomains) : isBlocked);
510510

511511
if (rule->ruleOptions.testFlag(ThirdPartyExceptionOption) || rule->ruleOptions.testFlag(ThirdPartyOption))
512512
{
513-
if (m_baseUrlHost.isEmpty() || requestSubdomainList.contains(m_baseUrlHost))
513+
if (request.baseHost.isEmpty() || requestSubdomainList.contains(request.baseHost))
514514
{
515515
isBlocked = rule->ruleOptions.testFlag(ThirdPartyExceptionOption);
516516
}
@@ -530,7 +530,7 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkRuleMatch(
530530

531531
if (rule->ruleOptions.testFlag(iterator.value()) || (supportsException && rule->ruleOptions.testFlag(static_cast<RuleOption>(iterator.value() * 2))))
532532
{
533-
if (resourceType == iterator.key())
533+
if (request.resourceType == iterator.key())
534534
{
535535
isBlocked = (isBlocked ? rule->ruleOptions.testFlag(iterator.value()) : isBlocked);
536536
}
@@ -545,7 +545,7 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkRuleMatch(
545545
}
546546
}
547547
}
548-
else if (resourceType == NetworkManager::PopupType)
548+
else if (request.resourceType == NetworkManager::PopupType)
549549
{
550550
isBlocked = false;
551551
}
@@ -736,15 +736,15 @@ QUrl AdblockContentFiltersProfile::getUpdateUrl() const
736736
return m_updateUrl;
737737
}
738738

739-
ContentFiltersManager::CheckResult AdblockContentFiltersProfile::evaluateRulesInNode(const Node *node, const QString &currentRule, NetworkManager::ResourceType resourceType) const
739+
ContentFiltersManager::CheckResult AdblockContentFiltersProfile::evaluateRulesInNode(const Node *node, const QString &currentRule, const Request &request) const
740740
{
741741
ContentFiltersManager::CheckResult result;
742742

743743
for (int i = 0; i < node->rules.count(); ++i)
744744
{
745745
if (node->rules.at(i))
746746
{
747-
ContentFiltersManager::CheckResult currentResult(checkRuleMatch(node->rules.at(i), currentRule, resourceType));
747+
ContentFiltersManager::CheckResult currentResult(checkRuleMatch(node->rules.at(i), currentRule, request));
748748

749749
if (currentResult.isBlocked)
750750
{
@@ -769,18 +769,11 @@ ContentFiltersManager::CheckResult AdblockContentFiltersProfile::checkUrl(const
769769
return result;
770770
}
771771

772-
m_baseUrlHost = baseUrl.host();
773-
m_requestUrl = requestUrl.url();
774-
m_requestHost = requestUrl.host();
772+
const Request request(baseUrl, requestUrl, resourceType);
775773

776-
if (m_requestUrl.startsWith(QLatin1String("//")))
774+
for (int i = 0; i < request.requestUrl.length(); ++i)
777775
{
778-
m_requestUrl = m_requestUrl.mid(2);
779-
}
780-
781-
for (int i = 0; i < m_requestUrl.length(); ++i)
782-
{
783-
const ContentFiltersManager::CheckResult currentResult(checkUrlSubstring(m_root, m_requestUrl.right(m_requestUrl.length() - i), {}, resourceType));
776+
const ContentFiltersManager::CheckResult currentResult(checkUrlSubstring(m_root, request.requestUrl.right(request.requestUrl.length() - i), {}, request));
784777

785778
if (currentResult.isBlocked)
786779
{

src/core/AdblockContentFiltersProfile.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,9 @@ class AdblockContentFiltersProfile final : public ContentFiltersProfile
122122
QString baseHost;
123123
QString requestHost;
124124
QString requestUrl;
125+
NetworkManager::ResourceType resourceType = NetworkManager::OtherType;
125126

126-
explicit Request(const QUrl &baseUrlValue, const QUrl &requestUrlValue) : baseHost(baseUrlValue.host()), requestUrl(requestUrlValue.toString()), requestHost(requestUrlValue.host())
127+
explicit Request(const QUrl &baseUrlValue, const QUrl &requestUrlValue, NetworkManager::ResourceType resourceTypeValue) : baseHost(baseUrlValue.host()), requestUrl(requestUrlValue.toString()), requestHost(requestUrlValue.host()), resourceType(resourceTypeValue)
127128
{
128129
if (requestUrl.startsWith(QLatin1String("//")))
129130
{
@@ -138,9 +139,9 @@ class AdblockContentFiltersProfile final : public ContentFiltersProfile
138139
void parseStyleSheetRule(const QStringList &line, QMultiHash<QString, QString> &list) const;
139140
void addRule(ContentBlockingRule *rule, const QString &ruleString) const;
140141
void deleteNode(Node *node) const;
141-
ContentFiltersManager::CheckResult checkUrlSubstring(const Node *node, const QString &subString, QString currentRule, NetworkManager::ResourceType resourceType);
142-
ContentFiltersManager::CheckResult checkRuleMatch(const ContentBlockingRule *rule, const QString &currentRule, NetworkManager::ResourceType resourceType) const;
143-
ContentFiltersManager::CheckResult evaluateRulesInNode(const Node *node, const QString &currentRule, NetworkManager::ResourceType resourceType) const;
142+
ContentFiltersManager::CheckResult checkUrlSubstring(const Node *node, const QString &subString, QString currentRule, const Request &request) const;
143+
ContentFiltersManager::CheckResult checkRuleMatch(const ContentBlockingRule *rule, const QString &currentRule, const Request &request) const;
144+
ContentFiltersManager::CheckResult evaluateRulesInNode(const Node *node, const QString &currentRule, const Request &request) const;
144145
bool loadRules();
145146
bool resolveDomainExceptions(const QString &url, const QStringList &ruleList) const;
146147

@@ -151,9 +152,6 @@ protected slots:
151152
private:
152153
Node *m_root;
153154
DataFetchJob *m_dataFetchJob;
154-
QString m_requestUrl;
155-
QString m_requestHost;
156-
QString m_baseUrlHost;
157155
QString m_name;
158156
QString m_title;
159157
QUrl m_updateUrl;

0 commit comments

Comments
 (0)