electron [功能请求]:支持FileTransfer门户(在沙箱化的Linux应用程序之间安全地拖放)

rn0zuynd  于 3个月前  发布在  Electron
关注(0)|答案(6)|浏览(74)

预检清单

问题描述

Electron 应该支持 FileTransfer 门户,因为它将允许用户安全地将文件/文件夹拖放到沙箱化的 Linux 应用程序中。
Flatpak 和其他沙箱化的 Linux 软件包(例如 Snap)使用 XDG Desktop Portal 在沙箱和主机之间安全地进行通信。这对于沙箱化应用程序至关重要,否则应用程序需要获得对主机的单方面访问权限,尤其是文件系统访问权限。
XDG Desktop Portal 的 FileChooser 门户最近已在 Electron 中实现:#19159 。这意味着一个沙箱化的应用程序可能没有单方面访问文件系统的权限,但仍然可以打开文件选择器,选择并“上传”文件/文件夹到应用程序,而不让该沙箱化应用程序知道除了所选文件/文件夹之外的任何事情。
然而,FileChooser 门户并未涵盖在 Electron 应用程序中拖放文件(或反之亦然)或安全复制粘贴的操作。FileTransfer 门户正是在主机和沙箱之间安全地进行拖放和复制粘贴操作所需的。

建议的解决方案

在 Electron 中实现对 FileTransfer 门户的支持。这可能最好在 Chromium 中完成,然后再在 Electron 中重用。最终可以使用 libportal 库,但 it does not yet support FileTransfer
FileTransfer 门户可以被沙箱化和非沙箱化应用程序使用,如此处讨论的:flatpak/libportal#33

考虑过的其他替代方案

通过给予沙箱化应用程序单方面访问主机文件系统的权限来解决方法。这是许多应用程序目前的状态,对于沙箱化应用程序来说,这绝对不是一个目标。

其他信息

为了使此实现有用,其他应用程序还需要支持 FileTransfer 门户。因此,如果用户从文件管理器拖动文件到具有 FileTransfer 实现的 Electron 应用程序中,那么该文件管理器也必须支持 FileTransfer,否则它仍然无法工作。
截至 2021-08-19 日,唯一其他支持 FileTransfer 门户的工具包/框架是 GTK4。
其他工具包/框架的 bug:
GTK 3 , QT

cnh2zyt3

cnh2zyt31#

顺便说一下,这个功能在两个月前才刚刚在GTK3中实现。这个提交可以作为参考。

tpgth1q7

tpgth1q72#

这是一个当前的主要可用性问题。多亏了文件系统门户,即使文件系统的权限非常有限,打开一个文件也能正常工作。然而,在这种情况下拖放功能是无法使用的:应用程序获得了主机系统上的文件系统路径,但对该文件的权限被拒绝。
从可用性的Angular 来看,最好默认为 --filesystem=host 。然而,从安全性的Angular 来看,这并不是一个好主意。文件传输门户实现应该解决这个问题。

rqcrx0a6

rqcrx0a63#

这是否已经在上游被提议过了?那将是最好的开始。

xxslljrj

xxslljrj4#

这是否已经在上游被提议过了?那将是最好的开始。
你指的是哪个上游?

  • 它在门户主机中实现,现在的问题是是否要实现对更兼容网络远程文件的选项的支持,这些文件通过类似GnomeVFS或KIO的方式进行间接操作。
  • 最初的帖子说它在GTK 4中实现了。
  • 你之前的两条评论说它已经添加到GTK 3中了。
  • 根据原始帖子中链接的Qt bug,KDE应用程序在使用kcoreaddons库等待Qt原生支持的同时支持它。

考虑到在Linux上看到非KDE Qt应用程序的罕见性(除了LyX和VirtualBox之外,我还能想到的就是这两个),除非你的意思是这不是electron本身的上游,而不仅仅是“所有相关的上游都支持这个”,而是一个事实上“每个人实际使用的应用程序都支持这个,除了基于Electron的那些...再次”。

**编辑:**好吧,这并不完全公平。像GIMP这样的应用程序仍然是基于GTK2的,而且据我所知,当XDG Portals系统开始实施时,GTK2在功能上已经被抛弃了。

qv7cva1a

qv7cva1a5#

这个问题已经在这个讨论中被提议过了。这是开始的最佳地点。

dvtswwa3

dvtswwa36#

  • 捂脸*我完全没有意识到Chrome/Chromium也可以用于这个目的。我甚至在Flatpak中运行了Ungoogled Chromium来测试兼容性。

对此表示抱歉。

**编辑:**也许我只是太习惯于Chromium、Ungoogled或其他在Linux上表现不佳,以至于它已经成为我的宇宙的正常状态。 ...他们花了多少年的时间才让SELECTION的复制粘贴功能正常工作?

相关问题