Extensions for midori must be written in C language. An extension source file must implement a function
extensions_init to be loaded. If the source file to be in
extensions/ directory, midori build system will be aware of its existence and build it.
MidoriExtension object must be created in
extension_init. A callback must then be connected to it for signal "activate". When extension is activated, this callback will be called with a
MidoriApp object as argument. With this object, it's possible to access the underlying windows, tabs, menus, webviews, and other objects extension may need to access. Extension must also connect a callback to
deactivate in order to be able to clean up things if user wants to deactivate the extension.
In my extension, I needed to get the statusbar, add a label to it, and set a timeout to update with with current time. Display format can be configured in a config file. There is currently no UI for configuration; I still need to work on it.