diff options
Diffstat (limited to 'src/nam.h')
| -rw-r--r-- | src/nam.h | 38 |
1 files changed, 15 insertions, 23 deletions
@@ -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 |
