summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-03-09 17:38:48 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-03-09 17:38:48 +0100
commitc4144a6e4b524631cad3113617ab64a909fd0503 (patch)
tree4eec2db6f70f05238e376c1f23437fb9b419bbd2
parent321a350b8fd9206a8677902b30327790698e151e (diff)
downloadqutebrowser-c4144a6e4b524631cad3113617ab64a909fd0503.tar.gz
qutebrowser-c4144a6e4b524631cad3113617ab64a909fd0503.zip
Add log-sensitive-keys debug flag
-rw-r--r--doc/changelog.asciidoc3
-rw-r--r--qutebrowser/keyinput/modeman.py11
-rw-r--r--qutebrowser/qutebrowser.py3
3 files changed, 11 insertions, 6 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index c78fe556a..93a85866b 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -60,6 +60,9 @@ Changed
- The `fileselect.*.command` settings now support file selectors writing the
selected paths to stdout, which is used if no `{}` placeholder is contained in
the configured command.
+- The `--debug-flag` argument now understands a new `log-sensitive-keys` value
+ which logs all keypresses (including those in insert/passthrough/prompt/...
+ mode) for debugging.
- The `readability` and `readability-js` userscripts now add a
`qute-readability` CSS class to the page, so that it can be styled easily via
a user stylesheet.
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index 08c5a151b..c00120596 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -86,9 +86,10 @@ def init(win_id: int, parent: QObject) -> 'ModeManager':
hintmanager = hints.HintManager(win_id, parent=parent)
objreg.register('hintmanager', hintmanager, scope='window',
window=win_id, command_only=True)
-
modeman.hintmanager = hintmanager
+ log_sensitive_keys = 'log-sensitive-keys' in objects.debug_flags
+
keyparsers: ParserDictType = {
usertypes.KeyMode.normal:
modeparsers.NormalKeyParser(
@@ -110,7 +111,7 @@ def init(win_id: int, parent: QObject) -> 'ModeManager':
commandrunner=commandrunner,
parent=modeman,
passthrough=True,
- do_log=False,
+ do_log=log_sensitive_keys,
supports_count=False),
usertypes.KeyMode.passthrough:
@@ -120,7 +121,7 @@ def init(win_id: int, parent: QObject) -> 'ModeManager':
commandrunner=commandrunner,
parent=modeman,
passthrough=True,
- do_log=False,
+ do_log=log_sensitive_keys,
supports_count=False),
usertypes.KeyMode.command:
@@ -130,7 +131,7 @@ def init(win_id: int, parent: QObject) -> 'ModeManager':
commandrunner=commandrunner,
parent=modeman,
passthrough=True,
- do_log=False,
+ do_log=log_sensitive_keys,
supports_count=False),
usertypes.KeyMode.prompt:
@@ -140,7 +141,7 @@ def init(win_id: int, parent: QObject) -> 'ModeManager':
commandrunner=commandrunner,
parent=modeman,
passthrough=True,
- do_log=False,
+ do_log=log_sensitive_keys,
supports_count=False),
usertypes.KeyMode.yesno:
diff --git a/qutebrowser/qutebrowser.py b/qutebrowser/qutebrowser.py
index 64c175293..9e1fb91cd 100644
--- a/qutebrowser/qutebrowser.py
+++ b/qutebrowser/qutebrowser.py
@@ -173,6 +173,7 @@ def debug_flag_error(flag):
log-requests: Log all network requests.
log-cookies: Log cookies in cookie filter.
log-scroll-pos: Log all scrolling changes.
+ log-sensitive-keys: Log keypresses in passthrough modes.
stack: Enable Chromium stack logging.
chromium: Enable Chromium logging.
wait-renderer-process: Wait for debugger in renderer process.
@@ -181,7 +182,7 @@ def debug_flag_error(flag):
"""
valid_flags = ['debug-exit', 'pdb-postmortem', 'no-sql-history',
'no-scroll-filtering', 'log-requests', 'log-cookies',
- 'log-scroll-pos', 'stack', 'chromium',
+ 'log-scroll-pos', 'log-sensitive-keys', 'stack', 'chromium',
'wait-renderer-process', 'avoid-chromium-init', 'werror']
if flag in valid_flags: