Index: third_party/WebKit/Source/core/mojo/MojoHandle.cpp |
diff --git a/third_party/WebKit/Source/core/mojo/MojoHandle.cpp b/third_party/WebKit/Source/core/mojo/MojoHandle.cpp |
index 0ae42778335411c744034c169d24a21ffa984f91..77b1febecf95243ede19be7b1f0c544bd23407b8 100644 |
--- a/third_party/WebKit/Source/core/mojo/MojoHandle.cpp |
+++ b/third_party/WebKit/Source/core/mojo/MojoHandle.cpp |
@@ -8,8 +8,10 @@ |
#include "bindings/core/v8/ScriptState.h" |
#include "core/dom/DOMArrayBuffer.h" |
#include "core/dom/DOMArrayBufferView.h" |
+#include "core/mojo/MojoMapBufferResult.h" |
#include "core/mojo/MojoReadMessageFlags.h" |
#include "core/mojo/MojoReadMessageResult.h" |
+#include "core/mojo/MojoSharedBuffer.h" |
#include "core/mojo/MojoWatcher.h" |
// Mojo messages typically do not contain many handles. In fact most |
@@ -92,4 +94,18 @@ void MojoHandle::readMessage(const MojoReadMessageFlags& flagsDict, |
resultDict.setHandles(handles); |
} |
+void MojoHandle::mapBuffer(unsigned offset, |
+ unsigned numBytes, |
+ MojoMapBufferResult& resultDict) { |
+ void* data = nullptr; |
+ MojoResult result = MojoMapBuffer(m_handle->value(), offset, numBytes, &data, |
+ MOJO_MAP_BUFFER_FLAG_NONE); |
+ resultDict.setResult(result); |
+ if (result == MOJO_RESULT_OK) { |
+ // TODO(alokp): Check if we need to track all mappings so that they can be |
alokp
2017/02/27 19:50:45
yzshen@: The current js-binding implementation doe
yzshen1
2017/02/27 21:05:27
The lifetime of mappings is not tied to that of th
|
+ // unmapped when this handle is closed. |
+ resultDict.setBuffer(new MojoSharedBuffer(data, numBytes)); |
+ } |
+} |
+ |
} // namespace blink |