The transferbar is separated from the browser, albeit it is still
created and filled from within the browser so it is not completely
independent.
The new class now keeps a list of TransferInfo items to keep track
of transfers and queries the status from the download object.
Destroying a button belonging to a transfer is connected to
removing it from the list and cleaning up the info structure. Also
the Clear button is updated from the destroy handler.
The use case is kiosk systems where leaving the application
idle for a period of time means that the user left, and the
session is reset so the next user starts off clean.
The implementation uses libXss and uses XScreenSaverQueryExtension
which means it is for now supported on X11 only.
Right now reset means closing any opens web pages and opening
the original web page.
Currently --inactivity-reset is only supported with --app.
This simplifies the build and possibly helps with linking problems
on some platforms. The 'progressive' option allows building
without an intermediate static library except for unit tests.
This socket code makes single instance a mandatory feature assuming
if libunique is not available we can use sockets.
A bit of refactoring of MidoriApp is involved to make the command
logic independant of the nature of the instance handling.
To make Midori play nicely with Maemo the menubar is now integrated, we
have a service file, a specific toolbar layout, no statusbar and icon styles.
The changes are applied if hildon is available, and can of course be
manually enabled or disabled.
The previous code relied on GIO implementing HTTP
with libsoup, so this is effectively not a new
dependency. And since many people don't have GVfs
and even if they do, somehow GIO doesn't work as
good as one should expect, direct use of libsoup
is actually an improvement. Plus the new code
caches icons on disk which we didn't do before.
The implementation relies on KatzeArray for the
most part and only does the storage with sqlite
behind the scenes. The change includes a working
History panel. Changes to the database are
committed in realtime.