QtWebEngine/Network: Difference between revisions
No edit summary |
No edit summary |
||
Line 27: | Line 27: | ||
# Use any proxy set explicitly in Qt Network | # Use any proxy set explicitly in Qt Network | ||
From Qt 5.8 onwards, The ''system proxy settings'' are used if [http://doc.qt.io/qt-5/qnetworkproxyfactory.html# | From Qt 5.8 onwards, The ''system proxy settings'' are used if [http://doc.qt.io/qt-5/qnetworkproxyfactory.html#usesSystemConfiguration QNetworkProxyFactory::usesSystemConfiguration] returns true. | ||
Otherwise Qt WebEngine adapts [http://doc.qt.io/qt-5/qnetworkproxy.html#applicationProxy QNetworkProxy::applicationProxy] . It does only use the following properties though: | |||
* [http://doc.qt.io/qt-5/qnetworkproxy.html#type QNetworkProxy::type()] | |||
* [http://doc.qt.io/qt-5/qnetworkproxy.html#hostName QNetworkProxy::hostName()] | |||
* [http://doc.qt.io/qt-5/qnetworkproxy.html#port QNetworkProxy::port()] | |||
Other settings in QNetworkProxy (or Qt Network in general) 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. | ''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. |
Latest revision as of 10:56, 21 July 2017
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::usesSystemConfiguration returns true.
Otherwise Qt WebEngine adapts QNetworkProxy::applicationProxy . It does only use the following properties though:
Other settings in QNetworkProxy (or Qt Network in general) 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