| Index: content/public/browser/file_descriptor_info.h
|
| diff --git a/content/public/browser/file_descriptor_info.h b/content/public/browser/file_descriptor_info.h
|
| index 255ac2cafe19e06aabb5c558bb748e6f955b8034..4fc686b538e51f9ca5329ec535eb3c09ca546e02 100644
|
| --- a/content/public/browser/file_descriptor_info.h
|
| +++ b/content/public/browser/file_descriptor_info.h
|
| @@ -8,45 +8,51 @@
|
| #include <stddef.h>
|
|
|
| #include "base/files/file.h"
|
| +#include "base/files/memory_mapped_file.h"
|
| #include "base/process/launch.h"
|
|
|
| namespace content {
|
|
|
| -// FileDescriptorInfo is a collection of file descriptors which is
|
| -// needed to launch a process. You should tell FileDescriptorInfo
|
| -// which FD should be closed and which shouldn't so that it can take care
|
| -// of the lifetime of FDs.
|
| +// FileDescriptorInfo is a collection of file descriptors which is needed to
|
| +// launch a process. You should tell FileDescriptorInfo which FDs should be
|
| +// closed and which shouldn't so that it can take care of the lifetime of FDs.
|
| //
|
| -// See base/process/launcher.h for more details about launching a
|
| -// process.
|
| +// See base/process/launcher.h for more details about launching a process.
|
| class FileDescriptorInfo {
|
| public:
|
| virtual ~FileDescriptorInfo() {}
|
|
|
| - // Add an FD associated with an ID, without delegating the ownerhip
|
| - // of ID.
|
| + // Adds an FD associated with an ID, without delegating the ownerhip of ID.
|
| virtual void Share(int id, base::PlatformFile fd) = 0;
|
|
|
| - // Add an FD associated with an ID, passing the FD ownership to
|
| + // Similar to Share but also provides a region in that file that should be
|
| + // read in the launched process (accessible with GetRegionAt()).
|
| + virtual void ShareWithRegion(
|
| + int id,
|
| + base::PlatformFile fd,
|
| + const base::MemoryMappedFile::Region& region) = 0;
|
| +
|
| + // Adds an FD associated with an ID, passing the FD ownership to
|
| // FileDescriptorInfo.
|
| virtual void Transfer(int id, base::ScopedFD fd) = 0;
|
|
|
| - // A vecotr backed map of registered ID-FD pairs.
|
| + // A vector backed map of registered ID-FD pairs.
|
| virtual const base::FileHandleMappingVector& GetMapping() const = 0;
|
|
|
| - // A GetMapping() variant what adjusts the ID value by |delta|.
|
| + // A GetMapping() variant that adjusts the ID value by |delta|.
|
| // Some environments need this trick.
|
| virtual base::FileHandleMappingVector GetMappingWithIDAdjustment(
|
| int delta) const = 0;
|
|
|
| - // API for iterating registered ID-FD pairs.
|
| + // API for iterating over the registered ID-FD pairs.
|
| virtual base::PlatformFile GetFDAt(size_t i) const = 0;
|
| virtual int GetIDAt(size_t i) const = 0;
|
| + virtual const base::MemoryMappedFile::Region& GetRegionAt(size_t i) const = 0;
|
| virtual size_t GetMappingSize() const = 0;
|
|
|
| - // True if |this| has an ownership of |file|.
|
| + // Returns true if |this| has ownership of |file|.
|
| virtual bool OwnsFD(base::PlatformFile file) const = 0;
|
| - // Assuming |OwnsFD(file)|, release the ownership.
|
| + // Assuming |OwnsFD(file)|, releases the ownership.
|
| virtual base::ScopedFD ReleaseFD(base::PlatformFile file) = 0;
|
| };
|
|
|
|
|