]> 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 d4059285576e1c469ac76178fb50fcb912073e4a..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>.
  *
 // Application headers.
 #include "UrlRequestInterceptor.h"
 
+// KDE Framework headers.
+#include <KLocalizedString>
+
 // 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.
@@ -42,9 +68,7 @@ void UrlRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo &urlReques
 
                 // Reapply the domain settings if the host is changing.
                 if (requestingHost != requestedHost)
-                {
                     emit applyDomainSettings(requestedHost);
-                }
             }
 
             break;
@@ -54,23 +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);
-
-            break;
-        }
-
-        default:
-        {
-            // Do nothing.
-            break;
-        }
-    }
 }