Mozzarella

Home

Were You Typing

Introduction:
How many times have you loaded a webpage and started to type something into the search engine only to realize the cursor wasn't in the search box the whole time?

Sometimes you finish typing your whole sentence before realizing ya ain't typed jack squat into the search box. Ain't nobody got time for this.

Now when you type something and the cursor isn't in an editable box, an eye-catching notification will pop up letting you know so.

To temporarily disable the pop up, press the Escape key once.

How it works:
When any webpage loads, this extension will hook into the keyboard event queue and everytime a key is pressed, the browser will call this extension to react.

This extension will first see if the event was handled by another process and if so it will stop.

Then it will see if any modifier keys were pressed such as (Control, Alt, Meta) and if so it will stop.

If the webpage's currently focused element is an input element then it will stop.

If the key pressed was the Escape key it will set a flag to ignore all future calls and stop.

If they key's name begins with at least 2 latin characters it is assumed that the key was a function key (like Backspace or CapsLock) and it will stop.

If the key's name is only 1 character long and is a latin character but not between A-Z or 0-9 then it is assumed to be a punctuation character and will be stop.

If the current webpage is in designMode then it will stop.

Otherwise the event is marked "handled" so that the default handler won't be called.

Then a flag is checked to see if the webpage was painted since the last call to this function. If it was painted, then a dialog element is created and inserted into the document (if it isn't already there during a previous call). A flag is set to mark that the webpage is pending to be painted.

Then a callback is added to the painting queue to unset the flag after the webpage has been painted.

Design:
The notification bar is red in order to be eye catching. It uses the keyboard emoji as the icon because the keyboard emoji is cross-platform (it looks different on a Windows and Mac) and it is naturally localized to the user's device. The notification bar appears instantly and slowly slides away and is completely gone by 1 second.

Scope:
This extension will only activate on top level pages. It will not work on frames to reduce the chance that it conflicts with complicated webpages both in terms of listening to keyboard events and the notification bar getting in the way of other content.

Limitation:
This extension will stop the "type to find" ("type ahead") feature of Firefox which is a feature that immediately searches for text on the current webpage when you type anything. You can still manually start the "type to find" function by pressing Ctrl+F or by typing "/".

Install