Save the selected file just in case uploading stuff fails/is not supported.
Merged r10991 from trunk (#12568).
Merged r10885 from trunk (#12451).
Merged r10992 from trunk (#12400).
Merged r10956 from trunk (#12513).
Merged r10975 from trunk (#12566).