Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(809)

Unified Diff: ui/gfx/mojo/buffer_types_struct_traits.cc

Issue 2875453002: Add a size parameter to SharedMemoryHandle. (Closed)
Patch Set: Remove extraneous period. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gfx/mojo/buffer_types_struct_traits.h ('k') | ui/surface/transport_dib_posix.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/mojo/buffer_types_struct_traits.cc
diff --git a/ui/gfx/mojo/buffer_types_struct_traits.cc b/ui/gfx/mojo/buffer_types_struct_traits.cc
index 9450770235c362db5840257e14e9f6eb664f3071..6eb14953be589bc056068fcc2cdf7ae44014d092 100644
--- a/ui/gfx/mojo/buffer_types_struct_traits.cc
+++ b/ui/gfx/mojo/buffer_types_struct_traits.cc
@@ -60,24 +60,14 @@ bool StructTraits<
#endif
}
-mojo::ScopedHandle StructTraits<gfx::mojom::GpuMemoryBufferHandleDataView,
- gfx::GpuMemoryBufferHandle>::
+mojo::ScopedSharedBufferHandle
+StructTraits<gfx::mojom::GpuMemoryBufferHandleDataView,
+ gfx::GpuMemoryBufferHandle>::
shared_memory_handle(const gfx::GpuMemoryBufferHandle& handle) {
if (handle.type != gfx::SHARED_MEMORY_BUFFER)
- return mojo::ScopedHandle();
-#if defined(OS_MACOSX)
- base::SharedMemoryHandle shm_handle = handle.handle;
- size_t num_bytes = 0;
- if (!shm_handle.GetSize(&num_bytes))
- return mojo::ScopedHandle();
- mojo::ScopedSharedBufferHandle scoped_handle =
- mojo::WrapSharedMemoryHandle(shm_handle, num_bytes, false);
- mojo::Handle mojo_handle = scoped_handle.release();
- return mojo::MakeScopedHandle(mojo_handle);
-#else // defined(OS_MACOSX)
- base::PlatformFile platform_file = handle.handle.GetHandle();
- return mojo::WrapPlatformFile(platform_file);
-#endif // defined(OS_MACOSX)
+ return mojo::ScopedSharedBufferHandle();
+ return mojo::WrapSharedMemoryHandle(handle.handle, handle.handle.GetSize(),
+ false);
}
const gfx::NativePixmapHandle&
@@ -112,35 +102,12 @@ bool StructTraits<gfx::mojom::GpuMemoryBufferHandleDataView,
return false;
if (out->type == gfx::SHARED_MEMORY_BUFFER) {
- mojo::ScopedHandle handle = data.TakeSharedMemoryHandle();
+ mojo::ScopedSharedBufferHandle handle = data.TakeSharedMemoryHandle();
if (handle.is_valid()) {
-#if defined(OS_MACOSX)
- mojo::Handle mojo_handle = handle.release();
- mojo::ScopedSharedBufferHandle buffer_handle =
- mojo::MakeScopedHandle(mojo::SharedBufferHandle(mojo_handle.value()));
MojoResult unwrap_result = mojo::UnwrapSharedMemoryHandle(
- std::move(buffer_handle), &out->handle, nullptr, nullptr);
- if (unwrap_result != MOJO_RESULT_OK)
- return false;
-#else // defined(OS_MACOSX)
- base::PlatformFile platform_file;
- MojoResult unwrap_result =
- mojo::UnwrapPlatformFile(std::move(handle), &platform_file);
+ std::move(handle), &out->handle, nullptr, nullptr);
if (unwrap_result != MOJO_RESULT_OK)
return false;
- // TODO(rockot): Pass GUIDs through Mojo. https://crbug.com/713763.
- // TODO(erikchen): During serialization, the SharedMemoryHandle is
- // decomposed on Linux into a file_descriptor. The serialization path
- // should be changed to serialize a Mojo shared buffer instead.
- // https://crbug.com/713763.
- base::UnguessableToken guid = base::UnguessableToken::Create();
-#if defined(OS_WIN)
- out->handle = base::SharedMemoryHandle(platform_file, guid);
-#else
- out->handle = base::SharedMemoryHandle(
- base::FileDescriptor(platform_file, true), guid);
-#endif
-#endif // defined(OS_MACOSX)
}
out->offset = data.offset();
« no previous file with comments | « ui/gfx/mojo/buffer_types_struct_traits.h ('k') | ui/surface/transport_dib_posix.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698