Each view has a meta value 'delay' which indicates whether it be
loaded or needs to be loaded manually before it shows content.
One way to trigger this is that Midori crashes and if it is
configured to 'Show last open tabs', all tabs will now be
delayed. To allow Midori to safely open without crashing again.
The other way is to change the 'Load on Startup' preference to
'Show last tabs without loading'. This causes all tabs restored
from the session to be delayed.
One interesting aspect is that it is possible to have delayed
tabs, use 'Show last open tabs' and tabs will remain as they are,
so delayed tabs will be delayed over following sessions.
The flag in the SoupMessage to verify secure connections is
only available in recent versions of libsoup. So we continue
to be oblivious to certificates with older versions.
If one of two known root certificate files is available, we
enable certificate validation, otherwise a warning is emitted.
Not using validation means that we trust any certificate. We
should consider doing the opposite.
The new property MidoriView:security is set during load
and indicates the security status. midori_view_get_security can
be used to determine the status later on.
midori_location_action_set_security_hint is implemented to
present security status visually. For now, this only changes
the icon, we need to find a more visible solution.
MidoriBrowser updates the security hint for the current view in
_midori_browser_update_interface.
Using a regular expression of blocked URIs makes it possible to
restrict the locations that can be visited. Any URI matching
the expression will be replaced with "http://.invalid".
The option works in --app and normal mode.
The extension is only needed for the --inactivity-reset option,
so most users building Midori won't need it.
We also need to check for the according header file.
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.
We shouldn't honor user preferences for new tabs when loading
the session. Rather we append in the order they were saved in.
This is currently a hack. In the future we should consider
public API additions to insert tabs in a particular order.
We intentionally set a timeout before saving changes to avoid
continuous disc access and also in case opening or closing a tab
results in an immediate crash or freezing.
But closing Midori normally should save outstanding changes.