blob: 63b07a43061c719637c8a9e00779dd27e9a02e85 [file] [log] [blame] [view] [edit]
# 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 two D-Bus methods, GenerateVirtualFileId() and
OpenFileById().
GenerateVirtualFileId() generates and returns a new unique ID, to be used for
file descriptor (FD) creation on the private FUSE file system at a later stage.
For ARCVM, this is achieved by directly issuing open() on the FUSE file system
with the returned ID, whereas for ARC++ container, the FD is created by calling
OpenFileById() below.
When OpenFileById() is called with a unique ID, in the ARC++ container flow, it
creates and returns a seekable FD backed by the FUSE file system.
When the file descriptor created above is being accessed, Virtual File Provider
will send signal to forward the access request to chrome.