QtWebEngine/Network
Qt WebEngine uses the Chromium networking stack instead of Qt Network.
Proxy Resolution
Note: If the first page takes long too load, this is often because Qt WebEngine queries the network for a PAC (Proxy Auto-Configuration) file.
Proxy resolution in Qt Network
Qt Network has a various levels to set proxies for client connections (evaluated in this order):
- QAbstractSocket::setProxy
- QNetworkAccessManager::setProxy
- QNetworkAccessManager::setProxyFactory
- QNetworkProxy::setApplicationProxy
- QNetworkProxyFactory::setUseSystemConfiguration
- QNetworkProxyFactory::setApplicationProxyFactory
Since Qt 5.6, there's a default QNetworkProxyFactory::applicationProxyFactory that uses the system settings (see -system-proxies / -no-system-proxies configure flag).
Proxy resolution in Qt WebEngine
Qt WebEngine does not feature an API for setting proxies directly. Anyhow, it can
- Use the system proxy settings
- Use any proxy set explicitly in Qt Network
From Qt 5.8 onwards, The system proxy settings are used if QNetworkProxyFactory::useSystemConfiguration() returns true. Otherwise Qt WebEngine adapts QNetworkProxy::applicationProxy(). Other proxy settings in Qt Network are ignored.
Note: The code path used to auto-detect proxy settings in the network differ, depending on whether --single-process is used. See https://codereview.qt-project.org/#/c/115567/ for details.
Proxy authentication
To authenticate proxies, connect to the QWebEnginePage::proxyAuthenticationRequired or WebEngineView::authenticationDialogRequested signal.
Links
http://doc.qt.io/qt-5/qtwebengine-overview.html#proxy-support