@Heilig
The original question was 'Different proxy for each QWebEngineView instance?'
that I read as set-once-and-forget but not as change-later-again-at-runtime
and setting it once (at creation time) is doable - usually by altering command line of those external sub-processess and adding --proxy-server=host:port which also allows to specify different proxy per protocol - and it will work per individual tab or page instance (as long as QWebEngine creates sub-process per each tab/page)
alas altering command line for chromium embedded sub-processes is not exposed in the API
Interesting fact - command line params are actually used but from QApplication::arguments() and we can change them only once by modifying argc/argv before we pass them to QApplication a(argc, argv);
so my point is - infrastructure is there it is just not exposed to changes (per tab/page) and original command line params are blindly re-used over and over again
e.g. that is proper way to set/use custom flash plugin/dll location - with this command line argument:
--ppapi-flash-path=./libpepflashplayer.so
TLDR; Obviously the Initial command line parameters (or modified argc, argv passed in QAplication constructor into QApplication::arguments()) are used always (send over and over again) on each tab/page creation and sent to its sub-process - alas not exposed for modification(s) in some settings per page or sub-process. If they were exposed I think that would solve proxy-per-tab problem, and I think closing a page and silently creating new one in same tab is a good trade off for solving the dreaded proxy-per-tab problem. Of course it will cause conflicts with currently used QNetworkProxy::applicationProxy - but these are implementation details...