So app mode with a config folder uses the same code paths
as normal browsing.
This means accelerators and search engines are available
in Private Browsing now.
The new function allows registering callbacks which clear data,
with a name and label so they show up in the Clear Private Data
dialogue and the chosen items are saved.
The old enumeration still keeps history, trash and the flag
whether to clear when Midori quits.
The variable MIDORI_COOKIES_DEBUG can be used to print
the number of updated cookies when they're written.
The temporary cookie file is written in the same location
now as moving across filesystems may not work.
Saving when Midori is quit is enforced.
Iterating an array by a GList is considerably faster than
continuously retrieving items, however it is also a lot
more complicated. So the new macro takes care of that and
uses a new semi-private function to avoid copying the list.
Note that the macro can't be nested, which basically isn't
useful in practise anyway.
The panel and the bookmarkbar need to monitor the removal of
bookmarks, and there can be multiple windows, so the database
should only be used to remove in one central place.
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.