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(); | 64 DOMArrayBufferView* view = buffer.getAsArrayBufferView().View(); |
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(); | 120 DOMArrayBufferView* view = buffer.getAsArrayBufferView().View(); |
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(); | 168 DOMArrayBufferView* view = buffer.getAsArrayBufferView().View(); |
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 |