OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "config.h" | 5 #include "config.h" |
6 #include "modules/presentation/PresentationSession.h" | 6 #include "modules/presentation/PresentationSession.h" |
7 | 7 |
8 #include "core/dom/DOMArrayBuffer.h" | 8 #include "core/dom/DOMArrayBuffer.h" |
9 #include "core/dom/DOMArrayBufferView.h" | 9 #include "core/dom/DOMArrayBufferView.h" |
10 #include "core/dom/Document.h" | 10 #include "core/dom/Document.h" |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
214 case MessageTypeBlob: | 214 case MessageTypeBlob: |
215 ASSERT(!m_blobLoader); | 215 ASSERT(!m_blobLoader); |
216 m_blobLoader = new BlobLoader(message->blobDataHandle, this); | 216 m_blobLoader = new BlobLoader(message->blobDataHandle, this); |
217 break; | 217 break; |
218 } | 218 } |
219 } | 219 } |
220 } | 220 } |
221 | 221 |
222 void PresentationSession::didReceiveTextMessage(const String& message) | 222 void PresentationSession::didReceiveTextMessage(const String& message) |
223 { | 223 { |
224 if (m_state == WebPresentationSessionState::Disconnected) | |
225 return; | |
226 | |
224 dispatchEvent(MessageEvent::create(message)); | 227 dispatchEvent(MessageEvent::create(message)); |
225 } | 228 } |
226 | 229 |
230 void PresentationSession::didReceiveArrayBufferMessage(const uint8_t* data, size _t length) | |
231 { | |
232 if (m_state == WebPresentationSessionState::Disconnected) | |
233 return; | |
234 | |
235 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(data, length); | |
236 dispatchEvent(MessageEvent::create(buffer.release())); | |
237 } | |
238 | |
239 void PresentationSession::didReceiveBlobMessage(const uint8_t* data, size_t leng th) | |
240 { | |
241 if (m_state == WebPresentationSessionState::Disconnected) | |
242 return; | |
243 | |
244 RefPtr<RawData> rawData = RawData::create(); | |
245 rawData->mutableData()->resize(length); | |
246 memcpy(rawData->mutableData()->data(), data, length); | |
mark a. foltz
2015/07/06 21:19:44
Can you just call BlobData::appendBytes(data, leng
USE s.singapati at gmail.com
2015/07/07 15:00:32
Done. Manual tested.
| |
247 OwnPtr<BlobData> blobData = BlobData::create(); | |
248 blobData->appendData(rawData.release(), 0, BlobDataItem::toEndOfFile); | |
249 Blob* blob = Blob::create(BlobDataHandle::create(blobData.release(), length) ); | |
250 dispatchEvent(MessageEvent::create(blob)); | |
251 } | |
252 | |
227 void PresentationSession::close() | 253 void PresentationSession::close() |
228 { | 254 { |
229 if (m_state != WebPresentationSessionState::Connected) | 255 if (m_state != WebPresentationSessionState::Connected) |
230 return; | 256 return; |
231 PresentationController* controller = presentationController(); | 257 PresentationController* controller = presentationController(); |
232 if (controller) | 258 if (controller) |
233 controller->closeSession(m_url, m_id); | 259 controller->closeSession(m_url, m_id); |
234 | 260 |
235 // Cancel current Blob loading if any. | 261 // Cancel current Blob loading if any. |
236 if (m_blobLoader) { | 262 if (m_blobLoader) { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
282 { | 308 { |
283 ASSERT(!m_messages.isEmpty() && m_messages.first()->type == MessageTypeBlob) ; | 309 ASSERT(!m_messages.isEmpty() && m_messages.first()->type == MessageTypeBlob) ; |
284 // FIXME: generate error message? | 310 // FIXME: generate error message? |
285 // Ignore the current failed blob item and continue with next items. | 311 // Ignore the current failed blob item and continue with next items. |
286 m_messages.removeFirst(); | 312 m_messages.removeFirst(); |
287 m_blobLoader.clear(); | 313 m_blobLoader.clear(); |
288 handleMessageQueue(); | 314 handleMessageQueue(); |
289 } | 315 } |
290 | 316 |
291 } // namespace blink | 317 } // namespace blink |
OLD | NEW |