| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/mojo/MojoHandle.h" | 5 #include "core/mojo/MojoHandle.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ArrayBufferOrArrayBufferView.h" | 7 #include "bindings/core/v8/ArrayBufferOrArrayBufferView.h" |
| 8 #include "bindings/core/v8/ScriptState.h" | 8 #include "bindings/core/v8/ScriptState.h" |
| 9 #include "core/dom/DOMArrayBuffer.h" | 9 #include "core/dom/DOMArrayBuffer.h" |
| 10 #include "core/dom/DOMArrayBufferView.h" | 10 #include "core/dom/DOMArrayBufferView.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 handles.begin(), handles.end(), raw_handles.begin(), | 54 handles.begin(), handles.end(), raw_handles.begin(), |
| 55 [](MojoHandle* handle) { return handle->handle_.release().value(); }); | 55 [](MojoHandle* handle) { return handle->handle_.release().value(); }); |
| 56 | 56 |
| 57 const void* bytes = nullptr; | 57 const void* bytes = nullptr; |
| 58 uint32_t num_bytes = 0; | 58 uint32_t num_bytes = 0; |
| 59 if (buffer.isArrayBuffer()) { | 59 if (buffer.isArrayBuffer()) { |
| 60 DOMArrayBuffer* array = buffer.getAsArrayBuffer(); | 60 DOMArrayBuffer* array = buffer.getAsArrayBuffer(); |
| 61 bytes = array->Data(); | 61 bytes = array->Data(); |
| 62 num_bytes = array->ByteLength(); | 62 num_bytes = array->ByteLength(); |
| 63 } else { | 63 } else { |
| 64 DOMArrayBufferView* view = buffer.getAsArrayBufferView().View(); | 64 DOMArrayBufferView* view = buffer.getAsArrayBufferView(); |
| 65 bytes = view->BaseAddress(); | 65 bytes = view->BaseAddress(); |
| 66 num_bytes = view->byteLength(); | 66 num_bytes = view->byteLength(); |
| 67 } | 67 } |
| 68 | 68 |
| 69 return MojoWriteMessage(handle_->value(), bytes, num_bytes, | 69 return MojoWriteMessage(handle_->value(), bytes, num_bytes, |
| 70 raw_handles.Data(), raw_handles.size(), | 70 raw_handles.Data(), raw_handles.size(), |
| 71 MOJO_WRITE_MESSAGE_FLAG_NONE); | 71 MOJO_WRITE_MESSAGE_FLAG_NONE); |
| 72 } | 72 } |
| 73 | 73 |
| 74 void MojoHandle::readMessage(const MojoReadMessageFlags& flags_dict, | 74 void MojoHandle::readMessage(const MojoReadMessageFlags& flags_dict, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 if (options_dict.allOrNone()) | 110 if (options_dict.allOrNone()) |
| 111 flags |= MOJO_WRITE_DATA_FLAG_ALL_OR_NONE; | 111 flags |= MOJO_WRITE_DATA_FLAG_ALL_OR_NONE; |
| 112 | 112 |
| 113 const void* elements = nullptr; | 113 const void* elements = nullptr; |
| 114 uint32_t num_bytes = 0; | 114 uint32_t num_bytes = 0; |
| 115 if (buffer.isArrayBuffer()) { | 115 if (buffer.isArrayBuffer()) { |
| 116 DOMArrayBuffer* array = buffer.getAsArrayBuffer(); | 116 DOMArrayBuffer* array = buffer.getAsArrayBuffer(); |
| 117 elements = array->Data(); | 117 elements = array->Data(); |
| 118 num_bytes = array->ByteLength(); | 118 num_bytes = array->ByteLength(); |
| 119 } else { | 119 } else { |
| 120 DOMArrayBufferView* view = buffer.getAsArrayBufferView().View(); | 120 DOMArrayBufferView* view = buffer.getAsArrayBufferView(); |
| 121 elements = view->BaseAddress(); | 121 elements = view->BaseAddress(); |
| 122 num_bytes = view->byteLength(); | 122 num_bytes = view->byteLength(); |
| 123 } | 123 } |
| 124 | 124 |
| 125 MojoResult result = | 125 MojoResult result = |
| 126 MojoWriteData(handle_->value(), elements, &num_bytes, flags); | 126 MojoWriteData(handle_->value(), elements, &num_bytes, flags); |
| 127 result_dict.setResult(result); | 127 result_dict.setResult(result); |
| 128 result_dict.setNumBytes(result == MOJO_RESULT_OK ? num_bytes : 0); | 128 result_dict.setNumBytes(result == MOJO_RESULT_OK ? num_bytes : 0); |
| 129 } | 129 } |
| 130 | 130 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 158 if (options_dict.peek()) | 158 if (options_dict.peek()) |
| 159 flags |= MOJO_READ_DATA_FLAG_PEEK; | 159 flags |= MOJO_READ_DATA_FLAG_PEEK; |
| 160 | 160 |
| 161 void* elements = nullptr; | 161 void* elements = nullptr; |
| 162 unsigned num_bytes = 0; | 162 unsigned num_bytes = 0; |
| 163 if (buffer.isArrayBuffer()) { | 163 if (buffer.isArrayBuffer()) { |
| 164 DOMArrayBuffer* array = buffer.getAsArrayBuffer(); | 164 DOMArrayBuffer* array = buffer.getAsArrayBuffer(); |
| 165 elements = array->Data(); | 165 elements = array->Data(); |
| 166 num_bytes = array->ByteLength(); | 166 num_bytes = array->ByteLength(); |
| 167 } else { | 167 } else { |
| 168 DOMArrayBufferView* view = buffer.getAsArrayBufferView().View(); | 168 DOMArrayBufferView* view = buffer.getAsArrayBufferView(); |
| 169 elements = view->BaseAddress(); | 169 elements = view->BaseAddress(); |
| 170 num_bytes = view->byteLength(); | 170 num_bytes = view->byteLength(); |
| 171 } | 171 } |
| 172 | 172 |
| 173 MojoResult result = | 173 MojoResult result = |
| 174 MojoReadData(handle_->value(), elements, &num_bytes, flags); | 174 MojoReadData(handle_->value(), elements, &num_bytes, flags); |
| 175 result_dict.setResult(result); | 175 result_dict.setResult(result); |
| 176 result_dict.setNumBytes(result == MOJO_RESULT_OK ? num_bytes : 0); | 176 result_dict.setNumBytes(result == MOJO_RESULT_OK ? num_bytes : 0); |
| 177 } | 177 } |
| 178 | 178 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 205 mojo::Handle handle; | 205 mojo::Handle handle; |
| 206 MojoResult result = MojoDuplicateBufferHandle(handle_->value(), &options, | 206 MojoResult result = MojoDuplicateBufferHandle(handle_->value(), &options, |
| 207 handle.mutable_value()); | 207 handle.mutable_value()); |
| 208 result_dict.setResult(result); | 208 result_dict.setResult(result); |
| 209 if (result == MOJO_RESULT_OK) { | 209 if (result == MOJO_RESULT_OK) { |
| 210 result_dict.setHandle(MojoHandle::Create(mojo::MakeScopedHandle(handle))); | 210 result_dict.setHandle(MojoHandle::Create(mojo::MakeScopedHandle(handle))); |
| 211 } | 211 } |
| 212 } | 212 } |
| 213 | 213 |
| 214 } // namespace blink | 214 } // namespace blink |
| OLD | NEW |