diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-03-19 17:52:02 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-03-19 17:59:48 +0100 |
commit | 16e9da983858fde0a67921535efdc2cdb2a4f2e9 (patch) | |
tree | baacb536860e653969abf2cbca797c660a210f16 | |
parent | 2c6b7c69674639f657831de945ce4d8ee6919811 (diff) | |
download | qutebrowser-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.py | 11 |
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 |