diff options
author | Yigit Akcay <yigit.akcay@qt.io> | 2023-02-15 20:43:25 +0100 |
---|---|---|
committer | Yigit Akcay <yigit.akcay@qt.io> | 2023-03-10 17:13:32 +0100 |
commit | 5e257fb57a211f95556ec387fe6f262a60cbb6fe (patch) | |
tree | 330abbb7f84f8664fbd44b80d573265da4cc2bcb /src/webenginequick/api | |
parent | 28a2cfe4116f7218b33df811b79536c0593ddda6 (diff) | |
download | qtwebengine-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.cpp | 13 | ||||
-rw-r--r-- | src/webenginequick/api/qquickwebengineprofile.h | 2 |
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 *); |