| Index: ipc/ipc_platform_file_attachment_posix.h
|
| diff --git a/ipc/ipc_platform_file_attachment.h b/ipc/ipc_platform_file_attachment_posix.h
|
| similarity index 60%
|
| rename from ipc/ipc_platform_file_attachment.h
|
| rename to ipc/ipc_platform_file_attachment_posix.h
|
| index c4c22a3c091518f9eca31de7716e9bd98fcae7b5..d1eff609c5340b8c617dcd4a069875121eed1212 100644
|
| --- a/ipc/ipc_platform_file_attachment.h
|
| +++ b/ipc/ipc_platform_file_attachment_posix.h
|
| @@ -5,26 +5,34 @@
|
| #ifndef IPC_IPC_PLATFORM_FILE_ATTACHMENT_H_
|
| #define IPC_IPC_PLATFORM_FILE_ATTACHMENT_H_
|
|
|
| -#include "base/files/file.h"
|
| +#include "ipc/ipc_export.h"
|
| #include "ipc/ipc_message_attachment.h"
|
|
|
| namespace IPC {
|
| namespace internal {
|
|
|
| // A platform file that is sent over |Channel| as a part of |Message|.
|
| -// |PlatformFileAttachment| doesn't own |file_|. The lifecycle of |file_| is
|
| -// managed by |MessageAttachmentSet|.
|
| -class PlatformFileAttachment : public MessageAttachment {
|
| +// PlatformFileAttachment optionally owns the file and |owning_| is set in that
|
| +// case. Also, |file_| is not cleared even after the ownership is taken.
|
| +// Some old clients require this strange behavior.
|
| +class IPC_EXPORT PlatformFileAttachment : public MessageAttachment {
|
| public:
|
| + // Non-owning constructor
|
| explicit PlatformFileAttachment(base::PlatformFile file);
|
| + // Owning constructor
|
| + explicit PlatformFileAttachment(base::ScopedFD file);
|
|
|
| Type GetType() const override;
|
| + base::PlatformFile TakePlatformFile() override;
|
| +
|
| base::PlatformFile file() const { return file_; }
|
| + bool Owns() const { return owning_.is_valid(); }
|
|
|
| private:
|
| ~PlatformFileAttachment() override;
|
|
|
| base::PlatformFile file_;
|
| + base::ScopedFD owning_;
|
| };
|
|
|
| base::PlatformFile GetPlatformFile(scoped_refptr<MessageAttachment> attachment);
|
|
|