24#include <QMutexLocker>
27 : QWebEngineUrlRequestInterceptor(parent)
34 QMutexLocker lock(&m_mutex);
37 info.setHttpHeader(QByteArrayLiteral(
"DNT"), QByteArrayLiteral(
"1"));
40 const QString host = info.firstPartyUrl().host();
42 if (m_usePerDomainUserAgent) {
44 if (m_userAgentsList.contains(host)) {
45 userAgent = m_userAgentsList.value(host);
47 QHashIterator<QString, QString>
i(m_userAgentsList);
50 if (host.endsWith(
i.key())) {
51 userAgent =
i.value();
56 if (!userAgent.isEmpty()) {
57 info.setHttpHeader(QByteArrayLiteral(
"User-Agent"), userAgent.toUtf8());
61 for (
UrlInterceptor *interceptor : std::as_const(m_interceptors)) {
62 interceptor->interceptRequest(info);
68 QMutexLocker lock(&m_mutex);
70 if (!m_interceptors.contains(interceptor)) {
71 m_interceptors.append(interceptor);
77 QMutexLocker lock(&m_mutex);
79 m_interceptors.removeOne(interceptor);
84 QMutexLocker lock(&m_mutex);
88 m_sendDNT = settings.
value(
QSL(
"DoNotTrack"),
false).toBool();
91 m_usePerDomainUserAgent =
mApp->userAgentManager()->usePerDomainUserAgents();
92 m_userAgentsList =
mApp->userAgentManager()->perDomainUserAgentsList();
void interceptRequest(QWebEngineUrlRequestInfo &info) Q_DECL_OVERRIDE
NetworkUrlInterceptor(QObject *parent=nullptr)
void installUrlInterceptor(UrlInterceptor *interceptor)
void removeUrlInterceptor(UrlInterceptor *interceptor)
void beginGroup(const QString &prefix)
QVariant value(const QString &key, const QVariant &defaultValue=QVariant())