GIO's notification implementation makes the code more readable and has
the advantage of supporting multiple notification specifications.
By default we will now use freedesktop notifications when running
without `.desktop` file and XDG-portal notifications when running
with `.desktop` file.
To prevent dynamic notification updates from arriving in wrong order at
the desktop environment, we need to manually queue them up and make sure
that there is at least 200ms delay between updates.
On mobile compositors like Phosh, the title bar will have no
buttons and is useless. Therefore it can be disabled by default.
This behaviour can still be overwritten using the
ATL_DISABLE_WINDOW_DECORATIONS environment variable.
The XDG-portal escapes the strings when installing a .desktop file. This
causes --uri %u to be replaced with --uri '%u', which causes an empty
string to be passed when no URI is specified.
Supported URI schemes will also be added to the .desktop file for --install
The URI is passed as named parameter --uri. This allows us to use unnamed parameters
for split APK apps in the future
Facebook implements its own native library unpack mechanism called SoLoader,
which loads native libraries from app_lib_dir/files/decompressed/libs.spo.
The libraries are loaded by absolute path, but bionic_translation needs
to know that this path may contain bionic libraries.
they can still be put on the filesystem and will be read from there
preferentially, though overriding assets in this way can confuse
some creatively written apps and cause them to crash.