X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Finterceptors%2FUrlRequestInterceptor.cpp;h=5f9a8cc3a312bbc0759c5d57797edb84984acecb;hb=831ccbba28b7bae2abfe964428d126f44ae43f1b;hp=634889867ad386464e5472b1d01c5ff1ccca6075;hpb=b105f2cce889a132faa9d7a5cdc8505b75965321;p=PrivacyBrowserPC.git diff --git a/src/interceptors/UrlRequestInterceptor.cpp b/src/interceptors/UrlRequestInterceptor.cpp index 6348898..5f9a8cc 100644 --- a/src/interceptors/UrlRequestInterceptor.cpp +++ b/src/interceptors/UrlRequestInterceptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright © 2022 Soren Stoutner . + * Copyright 2022-2023 Soren Stoutner . * * This file is part of Privacy Browser PC . * @@ -23,20 +23,40 @@ // KDE Framework headers. #include -// Qt framework headers. -#include - // Construct the class. UrlRequestInterceptor::UrlRequestInterceptor(QObject *parentObjectPointer) : QWebEngineUrlRequestInterceptor(parentObjectPointer) {} void UrlRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo &urlRequestInfo) { + // Handle the request according to the resource type. + switch (urlRequestInfo.resourceType()) + { + // A naughty HTTP ping request. + case QWebEngineUrlRequestInfo::ResourceTypePing: + { + // Block the HTTP ping request. + urlRequestInfo.block(true); + + // Display the HTTP Ping blocked dialog. + emit displayHttpPingDialog(urlRequestInfo.requestUrl().toString()); + + break; + } + + default: + { + // Do nothing. + break; + } + } + // Handle the request according to the navigation type. switch (urlRequestInfo.navigationType()) { case QWebEngineUrlRequestInfo::NavigationTypeLink: case QWebEngineUrlRequestInfo::NavigationTypeTyped: case QWebEngineUrlRequestInfo::NavigationTypeBackForward: + // case QWebEngineUrlRequestInfo::NavigationTypeReload: This can be uncommented once https://redmine.stoutner.com/issues/821 has been fixed. case QWebEngineUrlRequestInfo::NavigationTypeRedirect: { // Only check the hosts if the main URL is changing. @@ -58,42 +78,4 @@ void UrlRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo &urlReques // Do nothing. break; } - - // Handle the request according to the resource type. - switch (urlRequestInfo.resourceType()) - { - // A naughty HTTP ping request. - case QWebEngineUrlRequestInfo::ResourceTypePing: - { - // Block HTTP ping requests. - urlRequestInfo.block(true); - - // Instantiate an HTTP ping blocked message box. - QMessageBox httpPingBlockedMessageBox; - - // Set the icon. - httpPingBlockedMessageBox.setIcon(QMessageBox::Information); - - // Set the window title. - httpPingBlockedMessageBox.setWindowTitle(i18nc("HTTP Ping blocked dialog title", "HTTP Ping Blocked")); - - // Set the text. - httpPingBlockedMessageBox.setText(i18nc("HTTP Ping blocked dialog text", "This request has been blocked because it sends a naughty HTTP ping to %1.", - urlRequestInfo.requestUrl().toString())); - - // Set the standard button. - httpPingBlockedMessageBox.setStandardButtons(QMessageBox::Ok); - - // Display the message box. - httpPingBlockedMessageBox.exec(); - - break; - } - - default: - { - // Do nothing. - break; - } - } }