]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/helpers/FilterListHelper.h
Filter options implementation.
[PrivacyBrowserPC.git] / src / helpers / FilterListHelper.h
index 5bd9ad261c146e2e0d01e17a162c33f10f5ebb55..f8bfdf1cc887810e37a6764c8f2b3b11b6fa2ada 100644 (file)
@@ -23,6 +23,7 @@
 // Application headers.
 #include "structs/FilterListStruct.h"
 #include "structs/RequestStruct.h"
+#include "structs/UrlStruct.h"
 
 // Qt framework headers.
 #include <QString>
@@ -40,7 +41,9 @@ public:
     static const int BLOCKED = 2;
 
     // The public static sublist constant integers.
-    static const int MAIN_BLOCKLIST = 0;
+    static const int MAIN_ALLOWLIST = 0;
+    static const int MAIN_BLOCKLIST = 1;
+    static const int INITIAL_DOMAIN_BLOCKLIST = 2;
 
     // The public variables.
     FilterListStruct *easyListStructPointer;
@@ -52,6 +55,7 @@ public:
     // The public functions.
     bool checkFilterLists(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer) const;
     QString getDispositionString(int dispositionInt) const;
+    QString getFilterOptionDispositionString(const FilterOptionEnum::Disposition filterOptionDisposition) const;
     QString getNavigationTypeString(int navigationTypeInt) const;
     QString getResourceTypeString(int resourceTypeInt) const;
     QString getSublistName(int sublistInt) const;
@@ -62,6 +66,11 @@ private:
     QString ALLOWED_STRING;
     QString BLOCKED_STRING;
 
+    // The private translated filter option dispositions.
+    QString FILTER_OPTION_NULL;
+    QString FILTER_OPTION_APPLY;
+    QString FILTER_OPTION_OVERRIDE;
+
     // The private translated navigation type strings.
     QString NAVIGATION_TYPE_LINK;
     QString NAVIGATION_TYPE_TYPED;
@@ -95,12 +104,19 @@ private:
     QString RESOURCE_TYPE_UNKNOWN;
 
     // The private translated sublist strings.
+    QString MAIN_ALLOWLIST_STRING;
     QString MAIN_BLOCKLIST_STRING;
+    QString INITIAL_DOMAIN_BLOCKLIST_STRING;
 
     // The private functions.
-    bool checkIndividualList(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, FilterListStruct *filterListStruct) const;
+    bool blockRequest(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt, EntryStruct *entryStructPointer) const;
+    bool checkIndividualList(QWebEngineUrlRequestInfo &urlRequestInfo, UrlStruct &urlStruct, RequestStruct *requestStructPointer, FilterListStruct *filterListStructPointer) const;
+    bool checkThirdParty(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const bool isThirdPartyRequest, const QString &filterListTitle, const int sublistInt,
+                         EntryStruct *entryStructPointer) const;
     FilterListStruct* populateFilterList(const QString &filterListFileName) const;
-    void populateRequestStruct(RequestStruct *requestStructPointer, const int disposition, const QString &filterListTitle, const int sublistInt, const QString &appliedEntry,
-                               const QString &originalEntry) const;
+    void populateRequestStruct(RequestStruct *requestStructPointer, const int disposition, const QString &filterListTitle, const int sublistInt, EntryStruct *entryStructPointer) const;
+    bool processFilterOptions(QWebEngineUrlRequestInfo &urlRequestInfo, RequestStruct *requestStructPointer, const QString &filterListTitle, const int sublistInt,
+                              EntryStruct *entryStructPointer) const;
+    void removeInitialAndTrailingAsterisks(QString &filterListEntry) const;
 };
 #endif