summaryrefslogtreecommitdiff
path: root/src/webenginequick/api
diff options
context:
space:
mode:
authorYigit Akcay <yigit.akcay@qt.io>2023-02-15 20:43:25 +0100
committerYigit Akcay <yigit.akcay@qt.io>2023-03-10 17:13:32 +0100
commit5e257fb57a211f95556ec387fe6f262a60cbb6fe (patch)
tree330abbb7f84f8664fbd44b80d573265da4cc2bcb /src/webenginequick/api
parent28a2cfe4116f7218b33df811b79536c0593ddda6 (diff)
downloadqtwebengine-5e257fb57a211f95556ec387fe6f262a60cbb6fe.tar.gz
QWebEngineUrlResponseInterceptor: Implement new URL response interceptor
This patch adds the QWebEngineUrlResponseInterceptor abstract class, which, when implemented, allows a user to intercept response headers and modify them in any way they like. A response interceptor can be set via QWebEngineProfile::setUrlResponseInterceptor(), QQuickWebEngineProfile::setUrlResponseInterceptor() or QWebEnginePage::setUrlResponseInterceptor(). Also, the QWebEngineUrlResponseInfo class is implemented, which contains the request and response data to be used with the response interceptor. If a response interceptor is set in the profile and page, the one in the profile takes precedence. Fixes: QTBUG-61071 Change-Id: I484d14373ff597b1d531541c066f0102bae28c72 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src/webenginequick/api')
-rw-r--r--src/webenginequick/api/qquickwebengineprofile.cpp13
-rw-r--r--src/webenginequick/api/qquickwebengineprofile.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/webenginequick/api/qquickwebengineprofile.cpp b/src/webenginequick/api/qquickwebengineprofile.cpp
index 8292da894..a830e969e 100644
--- a/src/webenginequick/api/qquickwebengineprofile.cpp
+++ b/src/webenginequick/api/qquickwebengineprofile.cpp
@@ -902,6 +902,19 @@ void QQuickWebEngineProfile::setUrlRequestInterceptor(QWebEngineUrlRequestInterc
d->profileAdapter()->setRequestInterceptor(interceptor);
}
+/*!
+ Registers a response interceptor singleton \a interceptor to intercept URL responses.
+
+ The profile does not take ownership of the pointer.
+
+ \sa QWebEngineUrlResponseInterceptor
+*/
+void QQuickWebEngineProfile::setUrlResponseInterceptor(
+ QWebEngineUrlResponseInterceptor *interceptor)
+{
+ Q_D(QQuickWebEngineProfile);
+ d->profileAdapter()->setResponseInterceptor(interceptor);
+}
/*!
Returns the custom URL scheme handler register for the URL scheme \a scheme.
diff --git a/src/webenginequick/api/qquickwebengineprofile.h b/src/webenginequick/api/qquickwebengineprofile.h
index 29d6ee0b2..43b02e45a 100644
--- a/src/webenginequick/api/qquickwebengineprofile.h
+++ b/src/webenginequick/api/qquickwebengineprofile.h
@@ -8,6 +8,7 @@
#include <QtCore/qobject.h>
#include <QtCore/qscopedpointer.h>
#include <QtCore/qstring.h>
+#include <QtWebEngineCore/qwebengineurlresponseinterceptor.h>
#include <QtQml/qqmlregistration.h>
QT_BEGIN_NAMESPACE
@@ -90,6 +91,7 @@ public:
QWebEngineCookieStore *cookieStore() const;
void setUrlRequestInterceptor(QWebEngineUrlRequestInterceptor *interceptor);
+ void setUrlResponseInterceptor(QWebEngineUrlResponseInterceptor *interceptor);
const QWebEngineUrlSchemeHandler *urlSchemeHandler(const QByteArray &) const;
void installUrlSchemeHandler(const QByteArray &scheme, QWebEngineUrlSchemeHandler *);