summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-03-19 17:52:02 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-03-19 17:59:48 +0100
commit16e9da983858fde0a67921535efdc2cdb2a4f2e9 (patch)
treebaacb536860e653969abf2cbca797c660a210f16
parent2c6b7c69674639f657831de945ce4d8ee6919811 (diff)
downloadqutebrowser-16e9da983858fde0a67921535efdc2cdb2a4f2e9.tar.gz
qutebrowser-16e9da983858fde0a67921535efdc2cdb2a4f2e9.zip
Only connect IPC after init has finished
Otherwise, if there's a fatal error message shown during init, we try to open something via IPC before we're fully initialized. This can e.g. lead to a KeyError for qtnetwork-download-manager: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/qutebrowser/app.py", line 120, in <lambda> process_pos_args(args, cwd=cwd, via_ipc=True, File "/usr/lib/python3/dist-packages/qutebrowser/app.py", line 230, in process_pos_args win_id = mainwindow.get_window(via_ipc, force_window=True) File "/usr/lib/python3/dist-packages/qutebrowser/mainwindow/mainwindow.py", line 89, in get_window window = MainWindow(private=None) File "/usr/lib/python3/dist-packages/qutebrowser/mainwindow/mainwindow.py", line 220, in __init__ self._init_downloadmanager() File "/usr/lib/python3/dist-packages/qutebrowser/mainwindow/mainwindow.py", line 350, in _init_downloadmanager qtnetwork_download_manager = objreg.get('qtnetwork-download-manager') File "/usr/lib/python3/dist-packages/qutebrowser/utils/objreg.py", line 249, in get return reg[name] File "/usr/lib/python3.8/collections/__init__.py", line 1010, in __getitem__ raise KeyError(key) KeyError: 'qtnetwork-download-manager'
-rw-r--r--qutebrowser/app.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/qutebrowser/app.py b/qutebrowser/app.py
index 1a18881b5..cdeffa7d3 100644
--- a/qutebrowser/app.py
+++ b/qutebrowser/app.py
@@ -120,13 +120,14 @@ def run(args):
log.init.warning(
"Backend from the running instance will be used")
sys.exit(usertypes.Exit.ok)
- else:
- quitter.instance.shutting_down.connect(server.shutdown)
- server.got_args.connect(lambda args, target_arg, cwd:
- process_pos_args(args, cwd=cwd, via_ipc=True,
- target_arg=target_arg))
init(args=args)
+
+ quitter.instance.shutting_down.connect(server.shutdown)
+ server.got_args.connect(
+ lambda args, target_arg, cwd:
+ process_pos_args(args, cwd=cwd, via_ipc=True, target_arg=target_arg))
+
ret = qt_mainloop()
return ret