summaryrefslogtreecommitdiffstats
path: root/src/nam.h
diff options
context:
space:
mode:
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