| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
filesystem::preview-type used to be IF_LOCAL for this backedn but it
has been unset by commit a71469c79fd31adfc594a55afd29a7ce2202b270
The commit message says it should be treated as remote filesystems.
However, filesystem::remote is set to FALSE, so application would
still interpret this as local for previewing purposes.
Set filesystem::preview-type to get the result expected by that commit.
https://gitlab.gnome.org/GNOME/gvfs/-/issues/497
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The layout of the modal dialogs in gnome-shell changed [1] and the title
now is larger and uses the style of a headline. Make sure all titles
remain fully visible and use shorter strings for those.
Also unify the generic "Enter password" strings a bit to make work
easier for translators and use this string for most cases:
"Authentication Required\nEnter password for “%s”:"
[1] https://gitlab.gnome.org/GNOME/gnome-shell/issues/1343
|
|
|
|
|
|
|
| |
The new string is not a string freeze breakage, it's already used in a
number of other backends.
Closes: #453
|
|
|
|
| |
We're doing it manually now.
|
|
|
|
|
|
|
|
|
| |
We don't need to go to another function to get an error code when our
switch function does that already.
The "unhandled" AFC errors are now slightly less precise, but it's
still possible to get the meaning of that code from the AFC headers
directly (for developers), and not visible for end-users anyway.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Handle the new mount-removable-storage-devices-as-read-only option of
org.gnome.desktop.lockdown schema and present AFC, MTP, GPhoto2 devices
as read-only if enabled.
|
|
|
|
|
|
|
|
|
|
|
| |
Modern Apple devices have UUIDs that are not 40 digits long, as used
to be the case. Accordingly, a recent change in libimobiledevice
removed any assumptions around the UUID length, and we should do the
same in the afc backend. Without this change, we see a symptom where
the volume monitor and backend disagree on the expected mount root.
I have tested this on a 2018 iPad pro (iPad8,3) which has a 24 digit
UUID.
|
|
|
|
|
|
|
|
|
| |
GVfs uses different forms of "Backups not supported" string,
e.g. "Backups are not yet supported.", "backups not supported"
and "backups not supported yet". Let's use "Backups not
supported" consistently.
https://gitlab.gnome.org/GNOME/gvfs/issues/170
|
|
|
|
|
|
|
|
|
| |
GVfs uses different forms of "Operation not supported" string,
e.g. "Operation unsupported", "Operation not supported by
backend". Let's use "Operation not supported" consistently as
this is also used in GLib.
https://gitlab.gnome.org/GNOME/gvfs/issues/170
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/gvfs/issues/2
|
| |
|
|
|
|
|
|
|
|
| |
The afc daemon sometimes aborts on g_mutex_clear when force unmounting.
Leak the mutex in order to avoid the aborts. The daemon will hopefully
finish successfully then...
https://bugzilla.gnome.org/show_bug.cgi?id=775514
|
|
|
|
|
| |
We use "ports" to offer filesystem access to different functions on
iDevices. Use constants to make the code more readable.
|
|
|
|
|
|
| |
See https://developer.gnome.org/hig/stable/typography.html
https://bugzilla.gnome.org/show_bug.cgi?id=772219
|
|
|
|
|
|
|
| |
It is not obvious that "Trust" is the caption of the button in the
device and not in the GVfs.
https://bugzilla.gnome.org/show_bug.cgi?id=769712
|
|
|
|
|
|
|
| |
Mark all network-based backends as remote. This is useful to remove
some hardcoded lists of filesystem types in GTK+.
Bump required GLib version accordingly.
|
|
|
|
|
| |
Memory is not released on several places, when handling errors
mostly. Add missing g_free calls to avoid those memory leaks.
|
|
|
|
| |
GVfs uses custom log handler, which requires trailing newline char.
|
|
|
|
|
|
|
| |
When renaming a file in Documents, the callers expect the new path in
the global scheme, not the path inside the HouseArrest AFC itself.
This fixes a warning in nautilus when renaming files.
|
|
|
|
|
|
| |
Only throw a warning when the second attempt at setting up HouseArrest
fails, not when we're going to retry. This makes it easier to see real
warnings compared to normal run-time behaviour.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GStreamer gets very confused when the offset after a seek isn't what it
expected, and told us that the "Stream contains no data." when trying to
play back using giosrc.
But we could play the video just fine going through fuse.
FUSE hides bugs with relative seeks, such as our absolute offset being
wrong when doing absolute seeks. To make sure that the offset we return
is correct, call tell() and use that as the new offset.
https://bugzilla.gnome.org/show_bug.cgi?id=767405
|
|
|
|
|
|
|
|
| |
After having trusted the device, if we are too quick at clicking the
"Try Again" button, the creation will fail with an unknown error. Try
again silently up to the maximum number of retries after a short sleep.
https://bugzilla.gnome.org/show_bug.cgi?id=767399
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=767399
|
|
|
|
|
|
|
|
| |
Add specific errors for when the user refuses trust on the device, or
repeatedly tries to connect to it but the device is locked, or the
dialogue still showing on the device.
https://bugzilla.gnome.org/show_bug.cgi?id=763605
|
|
|
|
|
|
|
| |
When a pairing dialogue is shown on the device, don't tell the user that
the device is locked, rather that they need to click "Trust".
https://bugzilla.gnome.org/show_bug.cgi?id=763605
|
|
|
|
|
|
|
| |
There are new iOS 7 related error codes that we need to handle to catch
cases where a user action is required on the device.
https://bugzilla.gnome.org/show_bug.cgi?id=767297
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To avoid being unable to navigate within applications because we ran out
of HouseArrest services, keep track of file operations within each
application, and disconnect from unused ones when trying to access an
unconnected one.
The tracking only covers file operations, and not enumerations, and the
garbage collection algorithm is quite naive, but could easily be
extended.
https://bugzilla.gnome.org/show_bug.cgi?id=676188
|
|
|
|
|
|
|
|
| |
If setting up the HouseArrest service for an app fails, we should clean
up unused services, and try again. This tells us whether we should try
again in the first place.
https://bugzilla.gnome.org/show_bug.cgi?id=676188
|
|
|
|
|
|
| |
So that we don't have cases where the AppInfo disappears from under us.
https://bugzilla.gnome.org/show_bug.cgi?id=676188
|
|
|
|
|
|
| |
For starting the HouseArrest lockdownd service this time.
https://bugzilla.gnome.org/show_bug.cgi?id=676188
|
|
|
|
|
|
|
|
|
|
|
| |
We usually did:
if mode == AFC; <foo> else <bar>
To guard against the mode not actually being HouseArrest in the else
branch, change this to:
if mode == AFC; <foo> else if mode == HOUSE_ARREST ; <bar> ; else ; <baz>
https://bugzilla.gnome.org/show_bug.cgi?id=764099
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In b8ad223, we re-rooted the HouseArrest paths to always include
Documents/ as anything closed to the root isn't accessible. This caused
2 problems:
- first, it meant that checking for the new path being "/" wasn't
correct, as the path would always include at least a "Documents" path
component
- secondly, it meant that the display name for the root directory for an
application was incorrect as it was always "Documents" instead of the
app name.
https://bugzilla.gnome.org/show_bug.cgi?id=764099
|
|
|
|
|
|
|
|
| |
Commit fe83e09 removed thumbnailing support, so we should not using
G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL anymore. Let's remove it to be
treated as other remote filesystems.
https://bugzilla.gnome.org/show_bug.cgi?id=749639
|
|
|
|
|
|
|
|
|
|
| |
As we can only start HouseArrest for applications that have
UIFileSharingEnabled turned on, there's absolutely no need to list the
other applications.
See https://github.com/libimobiledevice/libimobiledevice/issues/193
https://bugzilla.gnome.org/show_bug.cgi?id=763606
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only sideloaded applications (development versions for example) can use
the VendContainer method of accessing application documents.
Always use the VendDocuments method instead.
Note that we'll also re-root the Documents folder as the root of the app
container is inaccessible ("EPERM") to avoid users fiddling with it.
See https://github.com/libimobiledevice/libimobiledevice/issues/193#issuecomment-95280639
https://bugzilla.gnome.org/show_bug.cgi?id=763606
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=749639
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
iDevices had a list of thumbnails available through afc:/// for photos
stored in the DCIM/ sub-directory, but the code to handle this was
always pretty fragile, relying on the iOS version to know which of a
number of different ways the thumbnails could be called or where they
would be stored.
It's easier to create the thumbnails ourselves from the JPG files, or
even access photos through PTP so that thumbnails are readily
accessible and in a way that doesn't change with each iOS release.
https://bugzilla.gnome.org/show_bug.cgi?id=749639
|
|
|
|
|
|
| |
Otherwise nautilus will offer the wrong action in its UI.
https://bugzilla.gnome.org/show_bug.cgi?id=753934
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=657906
|
|
|
|
|
|
|
|
|
|
| |
When GvfsBackendAfc is finalized, if we have a pending idle for a force
unmount, we need to remove it as by the time it runs, the GvfsBackendAfc
it's acting on will no longer be valid.
This fixes https://bugzilla.gnome.org/show_bug.cgi?id=751537 which can
be reproduced by plugging an iDevice, unmounting it in Nautilus, and
quickly unplugging it right after clicking on the eject icon.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When unplugging an afc device without unmounting it first, the
corresponding gvfsd-afc process does not go away in spite of the
exit(1) workaround added for bgo#708288.
This happens because idevice_event_unsubscribe() in called from the
thread where the _idevice_event_cb() runs in. libimobiledevice (through
libusbmuxd) creates a thread to watch for device events, and calls the
idevice_event_cb_t from that thread. idevice_event_unsubscribe() then
forcfully kills that thread (see usbmuxd_unsubscribe() in libusbmuxd),
so exit(1) code after the call to idevice_event_unsubscribe() never gets
a chance to run.
Moving the call to idevice_event_unsubscribe() and the
g_vfs_backend_force_unmount() call to run in the main loop through
g_idle_add() avoids this issue, and allows the code handling force
unmounts to run as expected.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=708288
|
|
|
|
|
|
|
| |
Since converting a GSeekType into an lseek type is repeated in a few
places, move it into shared code.
https://bugzilla.gnome.org/show_bug.cgi?id=738967
|
|
|
|
|
|
|
|
|
|
| |
Value of sbservices_error_t type is compared with INSTPROXY_E_SUCCESS
from instproxy_error_t, SBSERVICES_E_SUCCESS should be used instead.
However it isn't serious, because both constants have same value...
It fixes following warning:
gvfsbackendafc.c:262:21: warning: comparison between ‘sbservices_error_t’ and ‘enum <anonymous>’ [-Wenum-compare]
if (G_LIKELY(cond == INSTPROXY_E_SUCCESS))
|
|
|
|
|
|
|
|
|
|
| |
Move operation fails immediately with G_IO_ERROR_CANT_CREATE_BACKUP if
G_FILE_COPY_BACKUP is specified. Consequently copy and delete fallback
isn't executed. Return NOT_SUPPORTED instead of CANT_CREATE_BACKUP to
proceed with the fallback if G_FILE_COPY_NO_FALLBACK_FOR_MOVE isn't
specified.
https://bugzilla.gnome.org/show_bug.cgi?id=740057
|
|
|
|
|
|
|
| |
Allow setting the created timestamp using st_birthtime, supported on
iOS 7+.
https://bugzilla.gnome.org/show_bug.cgi?id=732752
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=505042
|
|
|
|
| |
See https://bugzilla.gnome.org/show_bug.cgi?id=708288
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=573837
|