From 8c54acab291a15cea86c96320201dd5ceb158c7f Mon Sep 17 00:00:00 2001 From: lufte Date: Fri, 16 Oct 2020 23:09:43 -0300 Subject: Re-install all modules every time a new profile is created. (cherry picked from commit 40a1772fdea98fc1ecc168a5f75aa296cb7fdf5e) This isn't what #5813 actually ended up as, but is an earlier, less intrusive version of the same change, which is what I'm going with for v1.14.1. --- qutebrowser/browser/webengine/webenginesettings.py | 11 ++++++++++- qutebrowser/browser/webengine/webenginetab.py | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index 336540ba0..5a6724484 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -36,7 +36,7 @@ from qutebrowser.browser.webengine import spell, webenginequtescheme from qutebrowser.config import config, websettings from qutebrowser.config.websettings import AttributeInfo as Attr from qutebrowser.utils import (utils, standarddir, qtutils, message, log, - urlmatch, usertypes) + urlmatch, usertypes, objreg) # The default QWebEngineProfile default_profile = typing.cast(QWebEngineProfile, None) @@ -382,12 +382,21 @@ def init_private_profile(): global private_profile if not qtutils.is_single_process(): + is_first_time = private_profile is None private_profile = QWebEngineProfile() private_profile.setter = ProfileSetter( # type: ignore[attr-defined] private_profile) assert private_profile.isOffTheRecord() private_profile.setter.init_profile() + if not is_first_time: + from qutebrowser.browser.webengine import webenginetab + webenginetab._qute_scheme_handler.install(private_profile) + webenginetab.req_interceptor.install(private_profile) + objreg.get('webengine-download-manager').install(private_profile) + from qutebrowser.browser.webengine import cookies + cookies.install_filter(private_profile) + def _init_site_specific_quirks(): """Add custom user-agent settings for problematic sites. diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index ab090d1f0..0b88b5e3f 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -46,6 +46,7 @@ from qutebrowser.qt import sip _qute_scheme_handler = None +req_interceptor = None def init(): @@ -54,6 +55,7 @@ def init(): # won't work... # https://www.riverbankcomputing.com/pipermail/pyqt/2016-September/038075.html global _qute_scheme_handler + global req_interceptor app = QApplication.instance() log.init.debug("Initializing qute://* handler...") -- cgit v1.2.3-54-g00ecf