| Index: mojo/common/common_custom_types_struct_traits.cc
|
| diff --git a/mojo/common/common_custom_types_struct_traits.cc b/mojo/common/common_custom_types_struct_traits.cc
|
| index c3b7ef20008d70f07340134ee17baac57b52b7b3..7dbb58e286e6bd6682bc65be0ab6a4cc94829496 100644
|
| --- a/mojo/common/common_custom_types_struct_traits.cc
|
| +++ b/mojo/common/common_custom_types_struct_traits.cc
|
| @@ -4,7 +4,7 @@
|
|
|
| #include "mojo/common/common_custom_types_struct_traits.h"
|
|
|
| -#include <iterator>
|
| +#include "mojo/public/cpp/system/platform_handle.h"
|
|
|
| namespace mojo {
|
|
|
| @@ -53,4 +53,22 @@ bool StructTraits<
|
| return true;
|
| }
|
|
|
| +mojo::ScopedHandle StructTraits<common::mojom::FileDataView, base::File>::fd(
|
| + base::File& file) {
|
| + DCHECK(file.IsValid());
|
| + return mojo::WrapPlatformFile(file.TakePlatformFile());
|
| +}
|
| +
|
| +bool StructTraits<common::mojom::FileDataView, base::File>::Read(
|
| + common::mojom::FileDataView data,
|
| + base::File* file) {
|
| + base::PlatformFile platform_handle = base::kInvalidPlatformFile;
|
| + if (mojo::UnwrapPlatformFile(data.TakeFd(), &platform_handle) !=
|
| + MOJO_RESULT_OK) {
|
| + return false;
|
| + }
|
| + *file = base::File(platform_handle);
|
| + return true;
|
| +}
|
| +
|
| } // namespace mojo
|
|
|