summaryrefslogtreecommitdiffstats
path: root/src/nam.h
diff options
context:
space:
mode:
authorSimon Rettberg2025-11-13 13:48:37 +0100
committerSimon Rettberg2025-11-13 14:00:03 +0100
commit2c3b026349349729141ca46bd9d292327da2dfe2 (patch)
treeaf0650430c311a319bda68c89b4fd39036a9ec2c /src/nam.h
parentFix: error page not showing HTTP error codes, but "Unknown Error" (diff)
downloadslxbrowser-2c3b026349349729141ca46bd9d292327da2dfe2.tar.gz
slxbrowser-2c3b026349349729141ca46bd9d292327da2dfe2.tar.xz
slxbrowser-2c3b026349349729141ca46bd9d292327da2dfe2.zip
Port to QtWebEngine (thx Junie), bump to C++20HEADmaster
Diffstat (limited to 'src/nam.h')
-rw-r--r--src/nam.h38
1 files changed, 15 insertions, 23 deletions
diff --git a/src/nam.h b/src/nam.h
index ec2bb17..8044aaf 100644
--- a/src/nam.h
+++ b/src/nam.h
@@ -1,38 +1,30 @@
#ifndef NAM_H_
#define NAM_H_
-#include <QNetworkAccessManager>
#include <QRegularExpression>
-#include <QNetworkReply>
+#include <QtWebEngineCore/QWebEngineUrlRequestInterceptor>
+#include <QtWebEngineCore/QWebEngineUrlRequestInfo>
/**
- * Block certain requests based on URL
+ * Block certain requests based on URL via QtWebEngine interceptor
*/
-class SlxNetworkAccessManager : public QNetworkAccessManager
+class SlxRequestInterceptor : public QWebEngineUrlRequestInterceptor
{
-Q_OBJECT
+ Q_OBJECT
public:
- SlxNetworkAccessManager(QRegularExpression blackList, QRegularExpression whiteList, QObject *parent = nullptr)
- : QNetworkAccessManager(parent), _black(blackList), _white(whiteList) {}
-protected:
- QNetworkReply* createRequest(QNetworkAccessManager::Operation op,
- const QNetworkRequest &originalReq, QIODevice *outgoingData = nullptr) override;
+ SlxRequestInterceptor(const QRegularExpression& blackList, const QRegularExpression& whiteList, QObject *parent = nullptr)
+ : QWebEngineUrlRequestInterceptor(parent), _black(blackList), _white(whiteList) {}
+ void interceptRequest(QWebEngineUrlRequestInfo &info) override;
+
+signals:
+ void urlBlocked(const QUrl &url);
+ void unsupportedScheme(const QUrl &url);
+
private:
- QRegularExpression _black, _white;
+ QRegularExpression _black, _white;
};
-class SlxDisabledNetworkReply : public QNetworkReply
-{
- Q_OBJECT
-public:
- SlxDisabledNetworkReply(QObject *parent, const QNetworkRequest &req,
- QNetworkAccessManager::Operation op);
-
- ~SlxDisabledNetworkReply() {}
- void abort() override { }
-protected:
- qint64 readData(char *, qint64) override { return -1; }
-};
+// no reply subclass needed with WebEngine
#endif