QtWebEngine/Network: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:




Qt Network has multiple ways to set proxies for client connections:
Qt Network has multiple ways to set proxies for client connections (evaluated in this order):
- [http://doc.qt.io/qt-5/qabstractsocket.html#setProxy QAbstractSocket::setProxy]
 
- [http://doc.qt.io/qt-5/qnetworkproxy.html#setApplicationProxy QNetworkProxy::setApplicationProxy]
# [http://doc.qt.io/qt-5/qabstractsocket.html#setProxy QAbstractSocket::setProxy]
- [http://doc.qt.io/qt-5/qnetworkproxyfactory.html#setApplicationProxyFactory QNetworkProxyFactory::setApplicationProxyFactory]
# [http://doc.qt.io/qt-5/qnetworkproxy.html#setApplicationProxy QNetworkProxy::setApplicationProxy]
# [http://doc.qt.io/qt-5/qnetworkproxyfactory.html#setApplicationProxyFactory 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 ===
=== Proxy resolution in Qt WebEngine ===

Revision as of 06:25, 18 October 2016

Qt WebEngine uses the Chromium networking stack instead of Qt Network. This also means that the setup of proxies might differ. In general, Qt WebEngine should follow the 'least surprising route' and follow the proxy settings of Qt Network.

Proxy resolution in Qt Network

Qt Network has multiple ways to set proxies for client connections (evaluated in this order):

  1. QAbstractSocket::setProxy
  2. QNetworkProxy::setApplicationProxy
  3. 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 checks QNetworkProxy::applicationProxy once. If there is a proxy set, it is used for Chromium connections too (see proxy_config_service_qt.cpp). If not, Chromium will try to use the system proxy settings.

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.

Links

http://doc.qt.io/qt-5/qtwebengine-overview.html#proxy-support