I seeked into the API in order to write a plugin for myself. In order to aid my workflow I need to listen to two keystrokes closely followed.
Apparently there are only hacks available.
I want to fire-and-forget about my plugin as long as the API to command firefox stays consistent.
I did not attempt to write any code (and any JS code, honestly that is) yet. Simply because I did not get that requirement addressed by the official API /& documentation.
Recompiling firefox would be the least favorable option; But I would still be hooked if it would enable me to observe keystrokes on my own.
As an practical example:
Pressing Shift two times in sequence and within 100 ms should enable me to eat the event.
To detect two keystrokes closely followed, you can use EventListeners for the onkeyup/onkeydown event. In combination with a variable that determines if the key was already pressed within the last 100 ms and a setTimeout call that resets that variable after 100 ms, it should be fairly easy to accomplish.
If you just need to intercept the keypresses in webpages then you can inject a content script and handle these. However there is no way with the new WebExtensions API to intercept browser chrome events.
Additionally there is no way to delay events. So if you want to suppress both shift presses you will struggle to do that. If you are ok to let the first one go through suppressing the second one is trivial.