From fd29528e4f0c3ef445a85ea1d9e2c96bcc3e37ed Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sat, 4 Feb 2017 21:39:22 +0100 Subject: [PATCH] Add proxy support for QtWebEngine with Qt >= 5.8 See #666 Fixes #2082 --- qutebrowser/app.py | 6 ++++++ qutebrowser/browser/webkit/webkittab.py | 6 ++++-- qutebrowser/config/configdata.py | 5 +++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/qutebrowser/app.py b/qutebrowser/app.py index de8a131ad..a2a062f51 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -47,6 +47,7 @@ from qutebrowser.commands import cmdutils, runners, cmdexc from qutebrowser.config import style, config, websettings, configexc from qutebrowser.browser import (urlmarks, adblock, history, browsertab, downloads) +from qutebrowser.browser.network import proxy from qutebrowser.browser.webkit import cookies, cache from qutebrowser.browser.webkit.network import networkmanager from qutebrowser.keyinput import macros @@ -386,6 +387,11 @@ def _init_modules(args, crash_handler): log.init.debug("Initializing network...") networkmanager.init() + if qtutils.version_check('5.8'): + # Otherwise we can only initialize it for QtWebKit because of crashes + log.init.debug("Initializing proxy...") + proxy.init() + log.init.debug("Initializing readline-bridge...") readline_bridge = readline.ReadlineBridge() objreg.register('readline-bridge', readline_bridge) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 82a25d634..9cb4ea68c 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -42,8 +42,10 @@ def init(): """Initialize QtWebKit-specific modules.""" qapp = QApplication.instance() - log.init.debug("Initializing proxy...") - proxy.init() + if not qtutils.version_check('5.8'): + # Otherwise we initialize it globally in app.py + log.init.debug("Initializing proxy...") + proxy.init() log.init.debug("Initializing js-bridge...") js_bridge = webkitqutescheme.JSBridge(qapp) diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 91588468d..5a5770d38 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -35,7 +35,7 @@ from qutebrowser.config import configtypes as typ from qutebrowser.config import sections as sect from qutebrowser.config.value import SettingValue from qutebrowser.utils.qtutils import MAXVALS -from qutebrowser.utils import usertypes +from qutebrowser.utils import usertypes, qtutils FIRST_COMMENT = r""" @@ -433,7 +433,8 @@ def data(readonly=False): ('proxy', SettingValue(typ.Proxy(), 'system', - backends=[usertypes.Backend.QtWebKit]), + backends=(None if qtutils.version_check('5.8') + else [usertypes.Backend.QtWebKit])), "The proxy to use.\n\n" "In addition to the listed values, you can use a `socks://...` " "or `http://...` URL."),