Chromium Code Reviews| Index: Source/modules/presentation/PresentationSession.cpp |
| diff --git a/Source/modules/presentation/PresentationSession.cpp b/Source/modules/presentation/PresentationSession.cpp |
| index dc665e2de1d2b3cb544a6e93db4f90f33a80c907..3e5bc97418651a18b8b3b6af1f3707ca0c1c5d60 100644 |
| --- a/Source/modules/presentation/PresentationSession.cpp |
| +++ b/Source/modules/presentation/PresentationSession.cpp |
| @@ -221,9 +221,35 @@ void PresentationSession::handleMessageQueue() |
| void PresentationSession::didReceiveTextMessage(const String& message) |
| { |
| + if (m_state == WebPresentationSessionState::Disconnected) |
| + return; |
| + |
| dispatchEvent(MessageEvent::create(message)); |
| } |
| +void PresentationSession::didReceiveArrayBufferMessage(const uint8_t* data, size_t length) |
| +{ |
| + if (m_state == WebPresentationSessionState::Disconnected) |
| + return; |
| + |
| + RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(data, length); |
| + dispatchEvent(MessageEvent::create(buffer.release())); |
| +} |
| + |
| +void PresentationSession::didReceiveBlobMessage(const uint8_t* data, size_t length) |
| +{ |
| + if (m_state == WebPresentationSessionState::Disconnected) |
| + return; |
| + |
| + RefPtr<RawData> rawData = RawData::create(); |
| + rawData->mutableData()->resize(length); |
| + 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.
|
| + OwnPtr<BlobData> blobData = BlobData::create(); |
| + blobData->appendData(rawData.release(), 0, BlobDataItem::toEndOfFile); |
| + Blob* blob = Blob::create(BlobDataHandle::create(blobData.release(), length)); |
| + dispatchEvent(MessageEvent::create(blob)); |
| +} |
| + |
| void PresentationSession::close() |
| { |
| if (m_state != WebPresentationSessionState::Connected) |