summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlufte <javier@lufte.net>2020-10-16 23:09:43 -0300
committerFlorian Bruhin <me@the-compiler.org>2020-12-03 18:52:52 +0100
commit8c54acab291a15cea86c96320201dd5ceb158c7f (patch)
tree6bdff58d9802aa38c8b4c89be79a9e4002dabe52
parent9198b16dc07ad3f27cd0d252a8841641dd166c7d (diff)
downloadqutebrowser-8c54acab291a15cea86c96320201dd5ceb158c7f.tar.gz
qutebrowser-8c54acab291a15cea86c96320201dd5ceb158c7f.zip
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.
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py11
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py2
2 files changed, 12 insertions, 1 deletions
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...")