Ensure we are not halting the entire application when trying to generate the debug archive for macOS vfs

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2024-11-05 17:40:47 +09:00 committed by Matthieu Gallien
parent a647b5fb07
commit 580420c28e
2 changed files with 6 additions and 2 deletions

View file

@ -45,7 +45,7 @@ public slots:
void configureExtensions(); void configureExtensions();
void authenticateExtension(const QString &extensionAccountId) const; void authenticateExtension(const QString &extensionAccountId) const;
void unauthenticateExtension(const QString &extensionAccountId) const; void unauthenticateExtension(const QString &extensionAccountId) const;
void createDebugArchiveForExtension(const QString &extensionAccountId, const QString &filename) const; void createDebugArchiveForExtension(const QString &extensionAccountId, const QString &filename);
void setFastEnumerationEnabledForExtension(const QString &extensionAccountId, bool enabled) const; void setFastEnumerationEnabledForExtension(const QString &extensionAccountId, bool enabled) const;

View file

@ -111,9 +111,13 @@ void FileProviderXPC::slotAccountStateChanged(const AccountState::State state) c
break; break;
} }
} }
void FileProviderXPC::createDebugArchiveForExtension(const QString &extensionAccountId, const QString &filename) const void FileProviderXPC::createDebugArchiveForExtension(const QString &extensionAccountId, const QString &filename)
{ {
qCInfo(lcFileProviderXPC) << "Creating debug archive for extension" << extensionAccountId << "at" << filename; qCInfo(lcFileProviderXPC) << "Creating debug archive for extension" << extensionAccountId << "at" << filename;
if (!fileProviderExtReachable(extensionAccountId)) {
qCWarning(lcFileProviderXPC) << "Extension is not reachable. Cannot create debug archive";
return;
}
// You need to fetch the contents from the extension and then create the archive from the client side. // You need to fetch the contents from the extension and then create the archive from the client side.
// The extension is not allowed to ask for permission to write into the file system as it is not a user facing process. // The extension is not allowed to ask for permission to write into the file system as it is not a user facing process.
const auto clientCommService = (NSObject<ClientCommunicationProtocol> *)_clientCommServices.value(extensionAccountId); const auto clientCommService = (NSObject<ClientCommunicationProtocol> *)_clientCommServices.value(extensionAccountId);