| 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 2248eb690f1b942aac9a4901f86ed6e825d65403..b0b2bdad7dc0c5baf15f872584e1e0c0cd953192 100644
|
| --- a/content/public/browser/file_descriptor_info.h
|
| +++ b/content/public/browser/file_descriptor_info.h
|
| @@ -5,23 +5,42 @@
|
| #ifndef CONTENT_PUBLIC_BROWSER_FILE_DESCRIPTOR_INFO_H_
|
| #define CONTENT_PUBLIC_BROWSER_FILE_DESCRIPTOR_INFO_H_
|
|
|
| -#include "base/file_descriptor_posix.h"
|
| +#include "base/files/file.h"
|
| +#include "base/process/launch.h"
|
|
|
| namespace content {
|
|
|
| -// This struct is used when passing files that should be mapped in a process
|
| -// that is been created and allows to associate that file with a specific ID.
|
| -// It also provides a way to know if the actual file descriptor should be
|
| -// closed with the FileDescriptor.auto_close field.
|
| -
|
| -struct FileDescriptorInfo {
|
| - FileDescriptorInfo(int id, const base::FileDescriptor& file_descriptor)
|
| - : id(id),
|
| - fd(file_descriptor) {
|
| - }
|
| -
|
| - int id;
|
| - base::FileDescriptor fd;
|
| +// 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.
|
| +//
|
| +// 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.
|
| + virtual void Share(int id, base::PlatformFile fd) = 0;
|
| +
|
| + // Add 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.
|
| + virtual const base::FileHandleMappingVector& GetMapping() const = 0;
|
| +
|
| + // A GetMapping() variant what 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.
|
| + virtual base::PlatformFile GetFDAt(size_t i) const = 0;
|
| + virtual int GetIDAt(size_t i) const = 0;
|
| + virtual size_t GetMappingSize() const = 0;
|
| };
|
|
|
| }
|
|
|