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:27 +0100
commit10bf505febd4d0c0f14c224667d187f8d3f0c88d (patch)
treeaa75631b4ac97c632b8d34b6d8efdf9df282ad04
parent4e849d234d2da376d58bf88e0e348a8896a031b1 (diff)
downloadqutebrowser-10bf505febd4d0c0f14c224667d187f8d3f0c88d.tar.gz
qutebrowser-10bf505febd4d0c0f14c224667d187f8d3f0c88d.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' (cherry picked from commit 6c0d8d59647b39ecf3292b125991522d3502db65)
-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