tree: 68d42e0a25fe42176ee5908628dc4402b917b4d4 [path history] [tgz]
  1. init/
  2. BUILD.gn
  3. fuse_main.cc
  4. fuse_main.h
  5. operation_throttle.cc
  6. operation_throttle.h
  7. operation_throttle_test.cc
  8. org.chromium.VirtualFileProvider.conf
  9. org.chromium.VirtualFileProvider.service
  10. OWNERS
  11. README.md
  12. service.cc
  13. service.h
  14. size_map.cc
  15. size_map.h
  16. util.cc
  17. util.h
  18. virtual-file-provider-jailed-arcvm.sh
  19. virtual-file-provider-jailed.sh
  20. virtual_file_provider.cc
virtual_file_provider/README.md

Virtual File Provider

Virtual File Provider is a service which provides file descriptors which forward access requests to chrome. From the accessing process‘s perspective, the file descriptor behaves like a regular file descriptor (unlike pipe, it’s seekable), while actually there is no real file associated with it.

Private FUSE file system

To forward access requests on file descriptors, this service implements a FUSE file system which is only accessible to this service itself.

D-Bus interface

This service provides only one D-Bus method, OpenFile(). When OpenFile() is called, it generates a new unique ID, opens a file descriptor on the private FUSE file system, and returns the ID and the FD to the caller. The caller should remember the ID to handle access requests later. When the FD is being accessed, this service sends signal to forward the access request to chrome.