Changes in 1.14.1
=================
Released: 2022-03-18

- Fix an issue in 1.14.0 where xdg-desktop-portal.service starting before
  graphical-session-pre.target would cause the GNOME session to deadlock by
  moving code to a new libexec binary which handles deleting or migrating
  .desktop files (and icons) from the dynamic launcher portal for apps which
  have been uninstalled or renamed.
- Fix some bugs in the aforementioned launcher migration implementation,
  "xdg-desktop-portal-rewrite-launchers".
- Fix build without libsystemd

Changes in 1.14.0
=================
Released: 2022-03-17

- Add a new "dynamic launcher" portal, which can install .desktop files and
  accompanying icons after user confirmation.
- Rework handling of empty app IDs: In case an empty string app ID is stored in
  the permission store, this permission is now shared only by apps whose app ID
  couldn't be determined, rather than all unsandboxed apps.
- Use libsystemd (when available) to try to determine the app ID of unsandboxed
  processes. This is useful since some portals otherwise can't be used by host
  apps.
- Make x-d-p start on session start, which is needed for the dynamic launcher
  portal to handle rewriting launchers for apps that have been renamed.
- Bring back the copy of Flatpak's icon-validator, which was dropped many
  releases ago.
- Icon validation is now required for the notification and dynamic launcher
  portals (previously it was only done if the "flatpak-validate-icon" binary
  could be found).
- document-portal: Move to the libfuse3 API
- document-portal: Use renameat2 sys call
- document-portal: Use mutex to fix concurrency bug
- realtime: Fix error code paths
- realtime: Fix MakeThreadHighPriorityWithPID method
- screencast: Fix an error when restoring streams
- ci: Various improvements
- Documentation improvements
- New translations: pt, ro

Changes in 1.12.1
=================
Released: 2021-12-22

- Fix a crash in the device portal

Changes in 1.12.0
=================
Released: 2021-12-21

- Place portals in the systemd session.slice
- settings: Add color-scheme key
- open-uri: Avoid a sync call to org.freedesktop.FileManager
- screncast: Allow restoring previous sessions
- Add a portal for requesting realtime permissions
- ci: Many improvements
- Publish the docs from a ci job
- Translation updates

Changes in 1.10.0
=================

- Remap /run/flatpak/app, for Flatpak 1.11.x
- Remap /var/config and /var/data
- permission-store: Avoid a crash
- permissions-store: Add GetPermission
- screencast: Add 'virtual' source type
- openuri: Use real path for OpenDirectory
- location: Fix accuracy levels
- Add power profile monitor implementation
- Translation updates

Changes in 1.8.1
================

- openuri: Fix an fd leak
- filechooser: Fix directory support
- build: Drop a fontconfig dependency
- snap: Use cgroups to identify confined apps
- documents: Add snap support
- wallpaper: Fix a crash
- build: Factor out a fuse check
- Translation updates

Changes in 1.8.0
================

- openuri: Allow skipping the chooser for more URL tyles
- openuri: Robustness fixes
- filechooser: Return the current filter
- camera: Make the client node visible
- camera: Don't leak pipewire proxy
- Fix file descriptor leaks
- Testsuite improvements
- Translation updates

Changes in 1.7.2
================

- document: Reduce the use of open fds
- document: Add more tests and fix issues they found
- Fix the build with musl

Changes in 1.7.1
================

- filechooser: Add a "directory" option
- filechooser: Document the "writable" option
- document: Expose directories with their proper name

Changes in 1.7.0
================

- testsuite improvements
- background: Avoid a segfault
- screencast: Require pipewire 0.3
- document: Support exporting directories
- document: New fuse implementation
- better support for snap and toolbox
- Translation updates

Changes in 1.6.0
================

- tests: Adapt to libportal api changes

Changes in 1.5.4
================

- background: Add a signal to the impl api
- background: Rewrite the monitoring to better track when apps disappear
- permissions: Fix SetValue handling of GVariant wrapping. This is an api change
- openuri: Add a per-type always-ask option
- openuri: Show the app chooser dialog less often
- memorymonitor: A new portal to let apps receive low memory warnings
- filetransfer: A new portal to rewrite file paths between sandboxes

Changes in 1.5.3
================

* Add more tests
* Translation updates
* location: Various fixes
* document portal: Monitor fuse mount
* openuri: Only ask 3 times to use the same app
* openuri: Add an 'ask' option
* Fix build from git
* email: Allow multiple addresses, cc and bcc
* filechooser: Allow saving multiple files

Changes in 1.5.2
================

* Add many more tests, using libportal
* gamemode: Add a pidfd-based api
* inhibit: Send a Response signal
* openuri: Add an OpenDirectory api
* Translation updates

Changes in 1.5.1
================

* Add a portal for setting desktop backgrounds
* Add tests
* Optionally use libportal (for tests)

Changes in 1.5.0
================

* Add a secret portal that is meant be used via
    libsecret inside the sandbox. One backend for
    this will live in gnome-keyring, others are
    possible
* Fix a file descriptor leak
* Reduce log spam
* Translation updates

Changes in 1.4.2
================

* Build fixes

Changes in 1.4.0
================

* Add a background&autostart portal
* Add a gamemode portal
* Add a camera portal
* Require pipewire 0.2.6
* inhibit: Track session state
* documents: Fix a ref-counting bug
* screencast: Add cursor modes
* screencast: Memory leak fixes
* Translation updates

Changes in 1.2.0
================

* notification: Use icon validator from flatpak
* notification: Don't leave temp files around
* email: Validate options better
* inhibit: Validate options better
* file chooser: Add support for setting the current filter
* Translation updates

Changes in 1.1.1
================

* Validate icons in notifications
* Respect lockdown settings
* Write back permissions for notifications to indicate portal use
* Set st_nlink in the documents portal
* Add infrastructure for validating options
* Validate email addresses
* Translation updates

Changes in 1.1.0
================

This is the first release in the new unstable 1.1.x series, leading up to 1.2
which is expected around the end of the year.

* Add a location portal, this requires geoclue 2.5.2
* Add a settings portal, for desktop-wide settings like XSettings or kdeglobals
* Allow locking down printing, save-to-disk and opening uris
* Monitor application changes in the open uri portal
* Add more tests

xdg-desktop-portal 1.0.3
========================

* Fix an option name in the remote desktop portal
* document-portal: Validate permissions and report errors
* Fix life-cycle issues with inodes in the document portal
* Improve the test coverage of the documents portal
* Add a 'coverage' make target

xdg-desktop-portal 1.0.2
========================

* networkmonitor: Fix several issues
* inhibit: Add session state monitoring

xdg-desktop-portal 1.0.1
========================

* networkmonitor: Add GetStatus and CanReach methods
* Unset GTK_USE_PORTAL
* Add a portal for moving files to the trash
* Fix an inode leak in the document portal

xdg-desktop-portal 1.0
======================

* screenshot: Add a color picker api
* screencast: Bump the pipewire dependency to 0.2.1
* Improve --help output
* Small documentation improvements

xdg-desktop-portal 0.99
=======================

* The NetworkMonitor portal API has been changed to allow access control
* The Proxy and NetworkMonitor portals only respond to requests from
  sandboxes with network access
* The flatpak portal is now documented

xdg-desktop-portal 0.11
=======================

* Add initial support for Snap packages.
* Fix memory leaks when ownership of bus names changes.
* Include docs for the session, remote desktop and screencast portals.
* document-portal: Be more flexible validating apps' IDs.
* document-portal: Be more strict when checking & granting file access.
* file-chooser: Fix crash with unitialized data in the save dialog.
* open-uri: Don't ever skip showing the dialog if a threshold is set.
* open-uri: Don't register http: URIs for sandboxed handlers.
* remote-desktop: Use the correct device type values.
* screencast: Fix synchronization issue with PipeWire.

* Translation updates
 Chinese (Taiwan)
 Spanish

xdg-desktop-portal 0.10
=======================

This version of xdg-desktop-portal contains the xdg-document-portal
that used to be shipped by flatpak. The code was moved to
xdg-desktop-portal as a first step towards being used by
snappy. Additionally having the two related portals delivered together
makes it easier to implement new features that rely on changes to
both portals.

The two versions of the document portal are fully compatible, but the
package files will conflict with older versions of flatpak, so
packagers will have to pick one version. Following this there will be
a new release of unstable flatpak with the document portal removed,
and a release of the stable branch (0.10) that has a configure
option to disable the document portal.

Additionally, this release contains a new screencast and remote
desktop portal based on PipeWire.

Major changes in this versions:

 * Import permission store from flatpak
 * Import document portal from flatpak
 * Add remote desktop portal
 * Add screencast portal
 * Add "interactive" mode to screenshot portal
 * file-chooser: Don't return document paths for paths the application has direct access to
 * Handle newer version of bubblewrap
 * New abstraction for application info, supporting multiple sandbox technologies
 * Add basic test suite

xdg-desktop-portal 0.9
======================

* Install pkg-config files into datadir

* Avoid a race in the portal APIs

* Change the email portal to take fds

* Translation updates
 Galicican
 Indonesian
 Turkish


xdg-desktop-portal 0.8
======================

* Update po files

xdg-desktop-portal 0.7
======================

* In the OpenURI portal, send the content-type and filename to the appchooser

* Stop handling file: uris in the OpenURI method of the OpenURI portal

* Add an OpenFile method for local files to the OpenURI portal

* Bug fixes in the notification portal

* Translation updates:
 Czech
 Italian

xdg-desktop-portal 0.6
======================

* A portal for sending email has been added

* The OpenURI portal has be made a bit more permissive.
  It will now directly use the system default for "safe"
  schemes such as http, and local directories.

* Translation updates:
 French

xdg-desktop-portal 0.5
======================

* The notification portal now supports non-exported actions

* An Account portal for basic user information has been added

* All portal interface now have a version property. Currently,
  all interfaces are at version 1

* The file chooser portal was forgetting to make files created
  for SaveFile writable. This has been fixed

* Translation updates:
 Czech
 Polish
 Swedish

xdg-desktop-portal 0.4
======================

* No longer rely on cgroups to find the app id

* Fix handling of mime type filters in the file chooser portal

* Translation updates:
 Chinese
 Czech
 German
 Serbian


xdg-desktop-portal 0.3
======================

* open-uri: Allow configuring threshold

* open-uri: Use fallback applications when needed

* Translation updates:
 Brazilian Portuguese
 Hungarian
 Slovak
 Ukrainian


xdg-desktop-portal 0.2
======================

* Add internationalization support

* Add Qt annotations

* New portal APIs:
 - org.freedesktop.portal.Device

* Translation updates:
 Polish


Initial release 0.1
===================

Included portal APIs:
 * org.freedesktop.portal.FileChooser
 * org.freedesktop.portal.Print
 * org.freedesktop.portal.OpenURI
 * org.freedesktop.portal.Screenshot
 * org.freedesktop.portal.Inhibit
 * org.freedesktop.portal.Notification
 * org.freedesktop.portal.NetworkMonitor
 * org.freedesktop.portal.ProxyResolver
