diff --git a/docs/changelog.rst b/docs/changelog.rst
index 48177be4..e2451cf2 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -4,6 +4,14 @@ Changelog
This changelog is used to track all major changes to Mopidy.
+v2.2.2 (UNRELEASED)
+===================
+
+Bug fix release.
+
+- Files: Fix crash due to mix of text and bytes in paths that come from
+ ``$XDG_CONFIG_HOME/user-dirs.dirs``. (Fixes: :issue:`1676`, :issue:`1725`)
+
v2.2.2 (UNRELEASED)
===================
diff --git a/docs/clients/mpris.rst b/docs/clients/mpris.rst
index daa23b6d..eed23970 100644
--- a/docs/clients/mpris.rst
+++ b/docs/clients/mpris.rst
@@ -4,62 +4,10 @@
MPRIS clients
*************
-`MPRIS `_ is short for Media Player Remote Interfacing
-Specification. It's a spec that describes a standard D-Bus interface for making
-media players available to other applications on the same system.
+`MPRIS `_ is short
+for Media Player Remote Interfacing Specification. It is a spec that describes
+a standard D-Bus interface for making media players available to other
+applications on the same system.
-The MPRIS frontend provided by the `Mopidy-MPRIS extension
-`_ currently implements all required
-parts of the MPRIS spec, plus the optional playlist interface. It does not
-implement the optional tracklist interface.
-
-
-.. _ubuntu-sound-menu:
-
-Ubuntu Sound Menu
-=================
-
-The `Ubuntu Sound Menu `_ is the default
-sound menu in Ubuntu since 10.10 or 11.04. By default, it only includes the
-Rhytmbox music player, but many other players can integrate with the sound
-menu, including the official Spotify player and Mopidy.
-
-.. image:: ubuntu-sound-menu.png
- :height: 480
- :width: 955
-
-If you install Mopidy from apt.mopidy.com, the sound menu should work out of
-the box. If you install Mopidy in any other way, you need to make sure that the
-file located at ``extra/desktop/mopidy.desktop`` in the Mopidy git repo is
-installed as ``/usr/share/applications/mopidy.desktop``, and that the
-properties ``TryExec`` and ``Exec`` in the file points to an existing
-executable file, preferably your Mopidy executable. If this isn't in place, the
-sound menu will not detect that Mopidy is running.
-
-Next, Mopidy's MPRIS frontend must be running for the sound menu to be able to
-control Mopidy. The frontend is enabled by default, so as long as you have all
-its dependencies available, you should be good to go. Keep an eye out for
-warnings or errors from the MPRIS frontend when you start Mopidy, since it may
-fail because of missing dependencies or because Mopidy is started outside of X;
-the frontend won't work if ``$DISPLAY`` isn't set when Mopidy is started.
-
-Under normal use, if Mopidy isn't running and you open the menu and click on
-"Mopidy Music Server", a terminal window will open and automatically start
-Mopidy. If Mopidy is already running, you'll see that Mopidy is marked with an
-arrow to the left of its name, like in the screen shot above, and the player
-controls will be visible. Mopidy doesn't support the MPRIS spec's optional
-tracklist interface yet, so you'll not be able to select what track to play
-from the sound menu. You can use the sound menu to check what you're currently
-playing, pause, resume, and skip to the next and previous track.
-
-In summary, Mopidy's sound menu integration is currently not a full featured
-client, but it's a convenient addition to an MPD client since it's always
-easily available on Unity's menu bar.
-
-
-Rygel
-=====
-
-Rygel is an application that will translate between Mopidy's MPRIS interface
-and UPnP, and thus make Mopidy controllable from devices compatible with UPnP
-and/or DLNA. To read more about this, see :ref:`upnp-clients`.
+See the `Mopidy-MPRIS documentation `_
+for a survey of some MPRIS clients.
diff --git a/docs/clients/ubuntu-sound-menu.png b/docs/clients/ubuntu-sound-menu.png
deleted file mode 100644
index 9362f6f4..00000000
Binary files a/docs/clients/ubuntu-sound-menu.png and /dev/null differ
diff --git a/docs/clients/upnp.rst b/docs/clients/upnp.rst
index 1a33b456..02deb316 100644
--- a/docs/clients/upnp.rst
+++ b/docs/clients/upnp.rst
@@ -37,8 +37,8 @@ There are two ways Mopidy can be made available as an UPnP MediaRenderer:
Using Mopidy-MPRIS and Rygel, or using Mopidy-MPD and upmpdcli.
-upmpdcli
---------
+Mopidy-MPD and upmpdcli
+-----------------------
`upmpdcli `_ is recommended, since it
is easier to setup, and offers `OpenHome
@@ -66,86 +66,15 @@ MediaRenderer to the network, while using the MPD protocol to control Mopidy.
4. A UPnP renderer should be available now.
-Rygel
------
+Mopidy-MPRIS and Rygel
+----------------------
-With the help of `the Rygel project `_ Mopidy can
-be made available as an UPnP MediaRenderer. Rygel will interface with the MPRIS
-interface provided by the `Mopidy-MPRIS extension
-`_, and make Mopidy available as a
-MediaRenderer on the local network. Since this depends on the MPRIS frontend,
-which again depends on D-Bus being available, this will only work on Linux, and
-not OS X. MPRIS/D-Bus is only available to other applications on the same
-host, so Rygel must be running on the same machine as Mopidy.
-
-1. Start Mopidy and make sure the MPRIS frontend is working. It is activated
- by default when the Mopidy-MPRIS extension is installed, but you may miss
- dependencies or be using OS X, in which case it will not work. Check the
- console output when Mopidy is started for any errors related to the MPRIS
- frontend. If you're unsure it is working, there are instructions for how to
- test it in the `Mopidy-MPRIS readme
- `_.
-
-2. Install Rygel. On Debian/Ubuntu::
-
- sudo apt-get install rygel
-
-3. Enable Rygel's MPRIS plugin. On Debian/Ubuntu, edit ``/etc/rygel.conf``,
- find the ``[MPRIS]`` section, and change ``enabled=false`` to
- ``enabled=true``.
-
-4. Start Rygel by running::
-
- rygel
-
- Example output::
-
- $ rygel
- Rygel-Message: New plugin 'MediaExport' available
- Rygel-Message: New plugin 'org.mpris.MediaPlayer2.mopidy' available
-
- In the above example, you can see that Rygel found Mopidy, and it is now
- making Mopidy available through Rygel.
+See the `Mopidy-MPRIS `_ documentation
+for how to setup Rygel to make Mopidy an UPnP MediaRenderer.
-The UPnP-Inspector client
-=========================
-
-`UPnP-Inspector `_ is a
-graphical analyzer and debugging tool for UPnP services. It will detect any
-UPnP devices on your network, and show these in a tree structure. This is not a
-tool for your everyday music listening while relaxing on the couch, but it may
-be of use for testing that your setup works correctly.
-
-1. Install UPnP-Inspector. On Debian/Ubuntu::
-
- sudo apt-get install upnp-inspector
-
-2. Run it::
-
- upnp-inspector
-
-3. Assuming that Mopidy is running with a working MPRIS frontend, and that
- Rygel is running on the same machine, Mopidy should now appear in
- UPnP-Inspector's device list.
-
-4. If you expand the tree item saying ``Mopidy
- (MediaRenderer:2)`` or similiar, and then the sub element named
- ``AVTransport:2`` or similar, you'll find a list of commands you can invoke.
- E.g. if you double-click the ``Pause`` command, you'll get a new window
- where you can press an ``Invoke`` button, and then Mopidy should be paused.
-
-Note that if you have a firewall on the host running Mopidy and Rygel, and you
-want this to be exposed to the rest of your local network, you need to open up
-your firewall for UPnP traffic. UPnP use UDP port 1900 as well as some
-dynamically assigned ports. I've only verified that this procedure works across
-the network by temporarily disabling the firewall on the the two hosts
-involved, so I'll leave any firewall configuration as an exercise to the
-reader.
-
-
-Other clients
-=============
+Clients
+=======
For a long list of UPnP clients for all possible platforms, see Wikipedia's
`List of UPnP AV media servers and clients
diff --git a/docs/ext/http.rst b/docs/ext/http.rst
index cea7a252..855a8c6b 100644
--- a/docs/ext/http.rst
+++ b/docs/ext/http.rst
@@ -103,13 +103,16 @@ See :ref:`config` for general help on configuring Mopidy.
A list of domains allowed to perform Cross-Origin Resource Sharing (CORS)
requests. This applies to both JSON-RPC and WebSocket requests. Values
- should be in the format ``hostname:port`` and separated by either a comma or
- newline.
-
+ should be in the format ``hostname:port``, should not specify any scheme and
+ be separated by either a comma or newline. Additionally, the ``port`` should
+ not be specified if it is the default (80 for http, 443 for https).
+
Same-origin requests (i.e. requests from Mopidy's web server) are always
allowed and so you don't need an entry for those. However, if your requests
originate from a different web server, you will need to add an entry for
- that server in this list.
+ that server in this list. For example, to allow requests from a web server
+ at 'http://www.my.web-client.com' you would specify the entry
+ 'www.my.web-client.com'.
.. confval:: http/csrf_protection