]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/interceptors/UrlRequestInterceptor.cpp
Only display the HTTP Ping dialog if it originates from the current tab. https:...
[PrivacyBrowserPC.git] / src / interceptors / UrlRequestInterceptor.cpp
index 634889867ad386464e5472b1d01c5ff1ccca6075..5f9a8cc3a312bbc0759c5d57797edb84984acecb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2022-2023 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
  *
 // KDE Framework headers.
 #include <KLocalizedString>
 
-// Qt framework headers.
-#include <QMessageBox>
-
 // 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;
-        }
-    }
 }